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

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

Войти
Регистрация
Восстановить пароль
 
Warezovvv
9 / 9 / 2
Регистрация: 09.12.2012
Сообщений: 219
#1

Удаление узла дерева - C++

08.12.2013, 18:17. Просмотров 200. Ответов 0
Метки нет (Все метки)

Всем привет и всех с наступающий что ле (пора уже или нет, хз)
Вообщем есть функция удаления узла

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
26
27
28
29
30
31
32
33
34
35
36
37
int deleteElement(node **temp, int value)
{
    
    //
        int r = 0;
        if (*temp != NULL)
        {
            if (value<(*temp)->data)
                r = deleteElement(&(*temp)->left, value);
            else if (value>(*temp)->data)
                r = deleteElement(&(*temp)->right, value);
            else
            {
                node *tmp = *temp;
                if (tmp->right == NULL)
                    *temp = tmp->left;
                else if (tmp->left == NULL)
                    *temp = tmp->right;
                else
                    changeDir(&(*temp)->left, &tmp);
 
                
                if (tmp->count == 1){
                    delete tmp;
                    return 1;
                }
                else {
                    tmp->count--;
                    return 2;                   
                }
                
            }
        }
        return r;
    
    
}
Которая должна сделать следующее. Есть структура в которой есть count : Это количество одинаковых элементов.
Т.е. если в дереве есть элемент 10 а я добавляю 10, то count++ . Собственно если удаляю 10 а count=2 то я должен
count-- и выйти из рекурсии. Но когда я удаляю 10 и вывожу дерево, то 10 удаляется полностью. Дебаг показывает сатану и что я опять захожу в рекурсию после return 2;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 18:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удаление узла дерева (C++):

Удаление узла из дерева - C++
сделав функции добавления,поиска,пару обходов и вывод ввиде дерева в консоли(жаль что нельзя размер по x изменить) при тестировании...

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

Удаление Узла бинарного дерева - C++
Добрый вечер. Имеем Бинарное дерево поиска. При удалении некоторого узла . возникают три случая. Один из случаев , наличие у...

Удаление узла бинарного дерева - C++
всем привет.вот есть у меня бинарное дерево тока фун-ии добавления и обхода.очень нужно удалени помогите плиз. .cpp #include &lt;iostream&gt;...

Удаление Узла Бинарного Дерева. - C++
Добрый День.Возникла проблема с реализацией части функции контейнера для удаления элемента с двумя узлами(по всем правилам бинарных...

Функция: удаление узла дерева со всеми потомками - C++
подскажите код функции которая удаляет элемент дерева со всеми его потомками NODE *SEARCH(char *key, NODE *root) { NODE...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2013, 18:17
Привет! Вот еще темы с ответами:

Удаление узла бинарного дерева, проблема с функциями, адресацией - C++
код: #include &lt;cstdlib&gt; #include &lt;iostream&gt; typedef struct tree{ // обьявляем тип char data; //дата изьятия в формате xx.xx.xxxx ...

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

Как сгенерировать ключ для узла дерева? - C++
В C# для создания сквозной нумерации текстовых заметок можно было просто объявить целую static-переменную в описании класса заметки,...

Определение глубины (числа ветвей) непустого дерева от вершины до заданного узла - C++
Подскажите пожалуйста. Никак не могу найти код нахождения глубины бинарного дерева от вершины до заданного узла. тут весь форум перерыл...


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

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

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