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

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

Войти
Регистрация
Восстановить пароль
 
_Sv_
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 97
#1

Удалить узел бинарного дерева - C++

19.05.2013, 15:19. Просмотров 416. Ответов 2
Метки нет (Все метки)

необходимо удалить узел, у которого нет потомков
нужно обнулить ссылку предка и освободить память, но не совсем понимаю, как это сделать. не могли бы вы исправить функцию?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
Node *Rem(Node *root)
{Node *pv=root;
Node *prev;
while(pv)
        {prev=pv;
            if(pv->left==NULL && pv->right==NULL)
              {prev->left=NULL;
                delete prev;
                  prev->right=NULL;
                   delete prev;
               }
        }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 15:19     Удалить узел бинарного дерева
Посмотрите здесь:

Неправильно удаляет узел из бинарного дерева - C++
Помогите подправить фунцию SearchDelete...Почему-то не работет. //13. Побудувати довільне бінарне дерево, зчитавши числові значення...

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

Удалить из бинарного дерева ветвь с вершиной, имеющий заданный ключ - C++
Это рабочая программа. Есть функции: 1)создание дерева; 2)добавление новой записи; ... 6)определение глубины дерева. ВОТ и...

Удалить из бинарного дерева всех отцов, имеющих одного сына - C++
Написала класс по работе с бинарным деревом. Помогите, пожалуйста, написать функцию по удалению из дерева всех однодетных отцов. Сижу уже...

Удалить из бинарного дерева ветвь с вершиной, имеющей заданный ключ - C++
Задали мне такое вот задание. Удалить из бинарного дерева ветвь с вершиной, имеющей заданный ключ. Как решать - ума не приложу.

Как запихнуть в очередь указатель на узел дерева? - C++
как запихнуть в очередь указатель на узел дерева Добавлено через 16 минут up? Добавлено через 4 минуты как создать из узлов...

Создать полную копию исходного дерева и проверить узел - C++
У меня есть дерево выражения(двоичное дерево). По алгоритму происходит следующее: 1. Проверяю каждый узел дерева. 2. Если с ним...

Класс для бинарного дерева - C++
Здравствуйте! Помогите, пожалуйста, я не вижу ошибок и не понимаю, почему программа не видит меню, не работает так, как нужно( Общее...

Исправить код бинарного дерева - C++
#include <stdlib.h> #include <iostream> struct uzel { int key;//хранится в вершине ключ-значение struct uzel...

Заполнение бинарного дерева из файла - C++
Есть задание. Используя классы , создать бинарное дерево. +готово, но пока через структуру-потом поправлю В узлах бинарного дерева...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tanya993
1 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 4
11.12.2013, 17:35     Удалить узел бинарного дерева #2
Если вы справились с этой задачей, можете со мной поделиться?
Qwertiy
818 / 626 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
11.12.2013, 19:51     Удалить узел бинарного дерева #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
bool remove_leaves(node *cur)
  {
  if(!cur->left && !cur->right)
    return true;
 
  if(cur->left && remove_leaves(cur->left))
    {
    delete cur->left;
    cur->left=0;
    }
 
  if(cur->right && remove_leaves(cur->right))
    {
    delete cur->right;
    cur->right=0;
    }
  
  return false;
  }
Ответ Создать тему
Опции темы

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