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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Оператор break как оператор go to next http://www.cyberforum.ru/cpp-beginners/thread750188.html
Подскажите, в этом примере break эквивалентна действию оператора go to next?
C++ Создание программы для С++ Помогите пожалуйста - мне надо откомпилировать файл моей программы в Borland C++. Помогите пожалуйста, жду http://www.cyberforum.ru/cpp-beginners/thread750185.html
Принцип 3d программ C++
Хочеться сделать программу там где ты ходиш в мелкой комнатке с стенками для освоения зд программ. А как принцып какой? там матрица какаято или че?
C++ Площадь фигуры ограниченной кусочно-линейной функцией и осью абсцисс
Нужно написать программу, которая бы методом трапеций вычисляла площадь фигуры ограниченной графиком показанным на рисунке и x=0. Интервал - Функции нашёл: на интервале (-беск;-2) y=-2.5x-6 (-2;0) y=x+1 (0;1) y=-2x+1 (1;беск) y=4/3x-0.2 ...
C++ Узнать что стоит на определённом месте (0 или 1) http://www.cyberforum.ru/cpp-beginners/thread750162.html
Уважаемые программисты! Помогите исправить код или решить задачу. Представим себе бесконечную последовательность цифр, составленную из записанных друг за другом возрастающих степеней десятки. Вот начало этой последовательности: 110100100010000… Всё, что надо — определить, какая цифра находится в такой последовательности на определённом месте. Исходные данные В первой строке находится целое...
C++ Задача на классы Я не понимаю как написать функцию чтобы она проверяла или числа с плавающей запятой! Помогите! #include <iostream.h> #include <time.h> #include <conio.h> class Rectangle{ private: float length; подробнее

Показать сообщение отдельно
scofielcl
4 / 4 / 0
Регистрация: 11.09.2011
Сообщений: 143
31.12.2012, 11:04  [ТС]     Удаление Узла бинарного дерева
Но в данном коде . удаление узла с двумя дочерними узлами . организовано не так как нужно.
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
void Delete_Node_BinaryTree(BinaryTree** Node,int Data){
  if ( (*Node) != NULL ){
    if ((*Node)->Data == Data){
      BinaryTree* ptr = (*Node);
      if ( (*Node)->Left == NULL && (*Node)->Right == NULL ) (*Node) = NULL;
      else if ((*Node)->Left == NULL) (*Node) = ptr->Right;
      else if ((*Node)->Right == NULL) (*Node) = ptr->Left;
      else {
        (*Node) = ptr->Right;
        BinaryTree ** ptr1;
        ptr1 = Node;
        while (*ptr1 != NULL) 
          ptr1 = &((*ptr1)->Left);
        (*ptr1) = ptr->Left;
      }
      delete(ptr);
      Delete_Node_BinaryTree(Node,Data);
    }
    else {
      Delete_Node_BinaryTree(&((*Node)->Left),Data);
      Delete_Node_BinaryTree(&((*Node)->Right),Data);
    }
  }
}
 
Текущее время: 09:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru