С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

30.05.2012, 20:51. Просмотров 268. Ответов 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. он не добавит ниодной восьмерки, а должен добавить первую , но не добавить вторую. подскажите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2012, 20:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Условия добавления в дерево (C++):

Ошибка добавления вершины в дерево - C++
Написал код класса дерева: template &lt;class T&gt; struct Node { T item; Node *left; Node *right; Node *parent; Node() {...

Добавления элемента в бинарное дерево - C++
Уже создавал подобную тему , но так и не получилось разобраться до конца . Есть такая задача : нужно создать бинарное дерево , вывести его...

Принцип добавления слов в бинарное дерево - C++
Доброго времени суток! Я хотел бы узнать по какому принципу добавлять слова в бинарное дерево. Если работать с числами, то принцип понятен,...

Красно-черное прошитое дерево с функцией добавления и удаления элементов - C++
Доброго времени Суток! Помогите пожалуйста,необходимо реализовать красно-чёрное дерево по таким условиям: &quot;Создать красно-черное прошитое...

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой - C++
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

Дано дерево. Распечатать дерево по уровням - C++
Дано дерево. Распечатать дерево по уровням.

2
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; //!!!
    }
1
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
30.05.2012, 22:30  [ТС] #3
Спасибо, помогло.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2012, 22:30
Привет! Вот еще темы с ответами:

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру - C++
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру. вот...

Напишите программу, которая бы читала дерево в формате (а) и затем печатала бы это дерево в формате (б). - C++
Представление дерева: а) Д (Б (А, Ф (В,)), Е (,З (Ж, И))) б) Д Б А Ф ...

Дерево дерево, странное дерево - C++
Нужна помощь в построении дерева. Задание таково: Вершина дерева содержит N целых значений и два указателя на потомков. Запись значений...

Дерево, бинарное дерево - C++
Читаю про дерево и не до конца понимаю, а точнее понимаю, но вопрос в том, правильно ли я понимаю, надеюсь вы мне подскажите. Вот есть...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.