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

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

Восстановить пароль Регистрация
 
Warezovvv
 Аватар для Warezovvv
9 / 9 / 2
Регистрация: 09.12.2012
Сообщений: 219
08.12.2013, 18:17     Удаление узла дерева #1
Всем привет и всех с наступающий что ле (пора уже или нет, хз)
Вообщем есть функция удаления узла

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;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 18:17     Удаление узла дерева
Посмотрите здесь:

C++ удаление узла бинарного дерева, проблема с функциями, адресацией
Удаление Узла Бинарного Дерева. C++
C++ RB tree удаление узла
C++ Определение глубины (числа ветвей) непустого дерева от вершины до заданного узла
Удаление Узла бинарного дерева C++
C++ Удаление узла дерева
C++ Удаления узла из бинарного дерева поиска
Удаление узла в линейном списке C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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