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

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

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

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

21.10.2013, 19:23. Просмотров 429. Ответов 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <conio.h>
using namespace std;
int count=0;
struct Node 
{
   int x,z; //То, что записываем в дерево
   Node *l,*r;
};
void find(int e, Node *&MyTree)
{
    if(e==MyTree->x)
    {
        cout << "\nDlinna ot kornya:";
        cout << "\n" << count << "\n";
    }
    else
        if (e>MyTree->x)
        {
            count++;
            find(e,MyTree->r);
        }
        else
        {
            count++;
            find(e,MyTree->l);
        }
    
}
void show(Node *&Tree) //Функция обхода
{
    if (Tree!=NULL)
    {
       show(Tree->l); //Рекурсивная функция для вывода левого поддерева
       cout<<Tree->x;//Отображаем корень дерева
       cout << "  ";
       show(Tree->r); //Рекурсивная функци для вывода правого поддерева
    }
}
 
Node* add_node(int x,Node *&MyTree) //Фукция добавления звена в дерево
{
    if (!MyTree)
    {
        MyTree= new Node;
        MyTree->x=x;
        MyTree->l=0;MyTree->r=0;
    }
    else
        if(x<MyTree->x)
            MyTree->l=add_node(x,MyTree->l);
        else
            MyTree->r=add_node(x,MyTree->r);
    return MyTree;
 
}
int DeleteTree(Node *Tree)
{
     if (Tree==NULL)
         return 0;
     else
     {
           DeleteTree(Tree->l);
           DeleteTree(Tree->r);
           delete Tree;
           Tree = NULL;
     }
}
int main()
{
  Node *Tree=NULL;  
  int k,e,z;
  cout << "Vvedite kolichestvo elementov v dereve\n";
  cin >> z;
  cout << "Vvedite elementi dereva\n";
      for (int i=0;i<z;i++) 
      {
          cin >> k;
          add_node(k,Tree);
      }
      cout << "Vvedite kluch\n";
      cin >> e;
      cout << "Derevo:\n";
      show(Tree);
        find(e,Tree);
      DeleteTree(Tree);
      getch();
   return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2013, 19:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос удаление звена из бинарного дерева (C++):

Удаление из бинарного дерева - C++
Здравствуйте! Помогите с удалением узла из бинарного дерева. Номер узла вводится пользователем #include &quot;stdafx.h&quot; #include...

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

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

Удаление вершины бинарного дерева - C++
Как удалять вершины бинарного дерева вместе с потомками?

Удаление элемента из бинарного дерева - C++
Ругается компилятор в Visual Studio при выполнении кода удаления элемента, а именно в том месте, где нужно удалить элемент с двумя...

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

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

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

Освобождение памяти, удаление бинарного дерева - C++
Добрый день. Написал программу, которая ищет в файле неиспользуемые переменные, т.е. те, которые объявлены. Всё в общем-то работает, но...

Удаление элемента из сбалансированого бинарного дерева - C++
Задание: написать программу, которая создает сбалансированное бинарное дерево, написать процедуру, которая удалит все парные элементы...

Удаление элементов из бинарного дерева (не дерево поиска) - C++
Задание заключается в создании бинарного дерева, из букв введенной строки, обходе дерева и удалении согласных букв из дерева. проблема...


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

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

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