Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
#1

Условия добавления в дерево - C++

30.05.2012, 20:51. Просмотров 244. Ответов 2
Метки нет (Все метки)

Привет, решаю задачку, не могу кое с чем разобраться.

у меня задача добавить в дерево число, как концевой узел.
если число меньше значения корня дерева, то добавить в левое дерево(это ОК), если больше, то в правое(это тоже ОК), а если равно то никуда ничего не добавлять, а просто пропустить его.

то есть если у нас корень 5, и мы когда-то захотим вставить число 5, то мы должны будем просто пропустить этот шаг и все.

вот моя функция добавления, скажите что делаю не так.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
node * new_node (int x) {
    node *ptr;
    ptr = new node;
    ptr->info = x;
    ptr->left = ptr->right = NULL;
    return ptr;
}
 
node* add_node(int x, node* root) {
    node *ptr = root;
    if (root == NULL) 
        return new_node (x);
    if (x == ptr->info) {
        cout << "Oshibka pri dobavlenii " << x << ", aga!" << endl << endl;
        return NULL;
    }
    if (x < root->info) {
        root->left = add_node (x, root->left);
        return ptr;
    } else {
        root->right = add_node (x, root->right);
        return ptr;
    }
    
}
например хочу добавить числа 2 5 8 9 3 0 1 8. он не добавит ниодной восьмерки, а должен добавить первую , но не добавить вторую. подскажите, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2012, 20:51     Условия добавления в дерево
Посмотрите здесь:

Функция для добавления матриц C++
C++ Метод добавления вопроса в тестирование
Функция добавления C++
C++ Вектор, добавления элементов
Добавления элемента в бинарное дерево C++
Добавления свойст C++
Принцип добавления слов в бинарное дерево C++
C++ Ошибка добавления в односвязный список
C++ Красно-черное прошитое дерево с функцией добавления и удаления элементов
C++ Ошибка добавления вершины в дерево
C++ Программа добавления программ в реестр

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rakota
35 / 35 / 1
Регистрация: 05.02.2012
Сообщений: 76
30.05.2012, 21:15     Условия добавления в дерево #2
Попробуйте так:
C++
1
2
3
4
5
if (x == ptr->info)
    {
        cout << "Oshibka pri dobavlenii " << x << ", aga!" << endl << endl;
        return ptr; //!!!
    }
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
30.05.2012, 22:30  [ТС]     Условия добавления в дерево #3
Спасибо, помогло.
Yandex
Объявления
30.05.2012, 22:30     Условия добавления в дерево
Ответ Создать тему
Опции темы

Текущее время: 13:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru