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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Последовательностью Фарея http://www.cyberforum.ru/cpp-beginners/thread1033379.html
Задача по программированию. Последовательностью Фарея порядка N называется возрастающая последовательность несократимых положительных дробей со знаменателями, не превосходящими N. Ваша задача: по k-му ее элементу получить (k+1)-й. Входные данные В первой строке находится N (1<=N<=1050). Во второй строке входного файла находится числитель P k-ой дроби, а в третьей - ее знаменатель Q...
C++ Массивы # include <iostream> using namespace std; int a; int main() { cout<<"Введите размер массива:\n"; int n; http://www.cyberforum.ru/cpp-beginners/thread1033367.html
C++ Объясните результат работы следующей программы
double x =1.23456789; for(int i=0; i<1030;i++) x=x/2; for( int i=0; i <1030;i++) x=x*2; cout.precision (12); cout<<fixed<<x<<endl; Как изменится результат ее работы, если изменить количество повторений на 1000, 1040,1050,1060,1070,1080? Почему????????
C++ Создание методов в С++
Всем привет подскажите можно ли обьвлять методы в С++ что бы они были доступны в файле реализации но не выносить их прототипы в хедер?
C++ Найти количество способов http://www.cyberforum.ru/cpp-beginners/thread1033362.html
Есть две задачи: 1. Фишка может перемещаться по полю длиной X только вперед. Размер каждого шага не должен превышать K. Найдите количество способов, которыми фишка может пройти от поля под номером 1 к полю Х. 2. Фишка может перемещаться по полю длиной Х только вперед. Размер каждого шага не должен превышать K. Найдете количество способов, которыми фишка может пройти от поля под номером 1 до...
C++ Шаблоны Добрый день. Не могли бы объяснить вот этот вопрос: Допускают ли шаблоны вложенность описания? подробнее

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

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;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru