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

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

Войти
Регистрация
Восстановить пароль
 
МарияБелая
2 / 2 / 0
Регистрация: 13.03.2014
Сообщений: 79
#1

Создать функции добавления и удаления узла из бинарного дерева - C++

09.07.2015, 12:50. Просмотров 175. Ответов 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
#include <cstddef>
# include <conio.h>
#include <stdio.h>
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
//ГЌГ*ГёГ* ñòðóêòóðГ*
struct node
{
    int info; //Г€Г*ôîðìГ*öèîГ*Г*îå ïîëå
    node *l, *r;//ËåâГ*Гї ГЁ ГЏГ°Г*ГўГ*Гї Г·Г*Г±ГІГј äåðåâГ*
};
 
node * tree=NULL; //Îáúÿâëÿåì ïåðåìåГ*Г*ГіГѕ, ГІГЁГЇ êîòîðîé ñòðóêòóðГ* Äåðåâî
 
/*ÔÓÍÊÖÈß ÇÀÏÈÑÈ ÝËÅÌÅÍÒÀ Â ÁÈÍÀÐÍÎÅ ÄÅÐÅÂÎ*/
void push(int a,node **t)
{
    int n;
    if ((*t)==NULL) //Åñëè äåðåâГ* Г*ГҐ Г±ГіГ№ГҐГ±ГІГўГіГҐГІ
    {
        (*t)=new node; //Âûäåëÿåì ГЇГ*ìÿòü
        (*t)->info=a; //ГЉГ«Г*äåì Гў âûäåëåГ*Г*îå ìåñòî Г*ðãóìåГ*ГІ a
        (*t)->l=(*t)->r=NULL; //ГЋГ·ГЁГ№Г*ГҐГ¬ ГЇГ*ìÿòü äëÿ ñëåäóþùåãî ðîñòГ*
        return; //Г‡Г*ëîæèëè ñåìå÷êî, âûõîäèì
         
    }
       //Äåðåâî ГҐГ±ГІГј
        if (a>(*t)->info) push(a,&(*t)->r); //Åñëè Г*ðãóìåГ*ГІ Г* áîëüøå Г·ГҐГ¬ ГІГҐГЄГіГ№ГЁГ© ýëåìåГ*ГІ, ГЄГ«Г*äåì ГҐГЈГ® ГўГЇГ°Г*ГўГ®
        else push(a,&(*t)->l); //Г€Г*Г*Г·ГҐ ГЄГ«Г*äåì ГҐГЈГ® âëåâî
}
 
/*ÔÓÍÊÖÈß ÎÒÎÁÐÀÆÅÍÈß ÄÅÐÅÂÀ ÍÀ ÝÊÐÀÍÅ*/
void print (node *t,int u) 
{
    if (t==NULL) return; //Åñëè äåðåâî ïóñòîå, ГІГ® îòîáðГ*Г¦Г*ГІГј Г*ГҐГ·ГҐГЈГ®, âûõîäèì
    else //Г€Г*Г*Г·ГҐ
    {
    print(t->l,++u);//Г‘ ïîìîùüþ ðåêóðñèâГ*îãî ïîñåùГ*ГҐГ¬ ëåâîå ïîääåðåâî
    for (int i=0;i<u;++i) cout<<"|";
    cout<<t->info<<endl; //Г€ ïîêГ*çûâГ*ГҐГ¬ ýëåìåГ*ГІ
    u--;
    }
    print(t->r,++u); //Г‘ ïîìîùüþ ðåêóðñèè ïîñåùГ*ГҐГ¬ ГЇГ°Г*âîå ïîääåðåâî
}
 
int main()
{   int n,s;
     int choice=-1;
     while(choice!=0) 
     {
     printf("1. Sozdanie dereva\n");
     scanf("%d",&choice);
     if (choice==1)
        {
            cout<<"vvedite kolichestvo elementov  ";
             cin>>n; //Ââîäèì êîëè÷åñòâî ýëåìåГ*òîâ
              for (int i=0;i<n;++i)
              {
                  cout<<"vvedite chislo  ";
                  cin>>s; //Ñ÷èòûâГ*ГҐГ¬ ýëåìåГ*ГІ Г§Г* ýëåìåГ*òîì
                  push(s,&tree); //Г€ ГЄГ*æäûé ГЄГ«Г*äåì Гў äåðåâî
              }
                   cout<<"your tree\n";
                   print(tree,0);
                  ;    
        }
 
     }
   getch(); getch();   
}
Добавлено через 26 минут
Извиняюсь, нужно описать функции удаления узла из дерева и удаления дерева
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2015, 12:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать функции добавления и удаления узла из бинарного дерева (C++):

Удаления узла из бинарного дерева поиска - C++
Уже довольно много времени убил на эту задачу, теорию понимаю, на практике реализовать никак не получается. Помогите пожалуйста написать...

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

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

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

Создать очередь, написать функции для добавления/удаления элементов - C++
Добрый. Помогите, пожалуйста. Задание: Разработать функции, позволяющие: 1)создать очередь; 2)добавлять в нее элементы; 3)извлекать...

Удаление узла бинарного дерева, проблема с функциями, адресацией - C++
код: #include &lt;cstdlib&gt; #include &lt;iostream&gt; typedef struct tree{ // обьявляем тип char data; //дата изьятия в формате xx.xx.xxxx ...

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

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

Функция удаления листа (или ветки) бинарного дерева - C++
Здравствуйте программисты! Учусь на первом курсе. Возникли проблемы с разработкой функции удаления ветки листа или корня из дерева. Т.е....

Создать функции добавления подстроки и удаления подстроки - C++
Написать в программе функции добавления подстроки и удаления подстроки в любом месте данного рядка.

Стеки, функции добавления и удаления элементов - C++
Программа на стеки выводит на экран 9876543210 ..помогите сделать так, чтобы можно было вводить вручную, удалять элементы из стека,...


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

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

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