Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 5
1

Построить бинарное дерево, элементами которого являются числа

19.05.2013, 14:48. Показов 1218. Ответов 2
Метки нет (Все метки)

Помогите решить задание: построить бинарное дерево, элементами которого являются числа. Удалить из дерева все повторяющиеся элементы.
Мой код:
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
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <iostream>
 
using namespace std;
 
 
struct it{
       int num;
       it *l, *r;
       };
       
 
it *head=NULL;
it *headf=NULL;
 
//-----------------------------------------------------
it *crt(int n)
{
     it *temp=new it;
     temp->num=n;
     temp->r=temp->l=0;
     return temp;
     }
 
void add(it *&el, int n){
     if(el==NULL){el=crt(n);}
     else if(n>=el->num){
                         if(el->r==NULL)el->r=crt(n);
                         else add(el->r, n);
                         }
     else if(n<el->num){
                         if(el->l==NULL)el->l=crt(n);
                         else add(el->l, n);
                         }
 
     }
 
 
void add_new(it *&el, int n){
     if(el==NULL){el=crt(n);}
     else if(n>el->num){
                         if(el->r==NULL)el->r=crt(n);
                         else add(el->r, n);
                         }
     else if(n<el->num){
                         if(el->l==NULL)el->l=crt(n);
                         else add(el->l, n);
                         }
 
     }
 
 
//---------------------------------------
void print(it *el)
{
 if(el!=NULL){
              print(el->r);
              cout<<el->num<<endl;
              print(el->l);
              }
}
 
void same(it *el){
                  if(el!=NULL)
                  {
                              same(el->l);
                              add_new(headf, el->num);
                              same(el->r);
                              }
                  }
 
void clear(it *el){
     if(el){
                   clear(el->r);
                   clear(el->l);
                   delete el;
                   }        
                   }
 
 
//--------------------------------- 
int main(){
cout<< "vvedite elementy"<<endl;
int n;
for(int i=0; i<6; i++)
{
        cin>>n;
        add(head, n);
}
cout<<endl;
 
print(head);
 
same(head);
clear(head);
        
cout<<"\n\n";
print(headf);
 
clear(headf);
system("Pause");
return 0;
}
В том проблема что удаляются не все повторения...
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2013, 14:48
Ответы с готовыми решениями:

Построить и вывести бинарное дерево, степень всех вершин которого, кроме листьев, равна введенному числу
Здравствуйте! Нужно построить и вывести бинарное дерево, степень всех вершин которого, кроме...

По матрице построить массив, элементы которого являются максимальными элементами диагоналей, параллельных главной
По данной матрице построить массив, элементы которого являются максимальными элементами...

Сформировать массив IM( 50 ) ,элементами которого являются числа 1,3,5,…,49,50,48,46 ,…,2
Сформировать массив IM( 50 ) , элементами которого являются числа ...

Сформировать массив, элементами которого являются числа 2,1,4,3,6,5,...,100,99
Как написать в турбо си Сформировать массив IM(100) элементами которого являются числа...

2
3 / 3 / 0
Регистрация: 08.02.2012
Сообщений: 17
19.05.2013, 17:54 2
тут программу можно скачать http://algorithmlib.org/binary_tree и есть описание алгоритма
0
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 5
20.05.2013, 20:09  [ТС] 3
А в моём коде, что не правильно? А то не хочется заново начинать...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2013, 20:09

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Формирование массива, элементами которого являются цифры числа N
Дано натуральное число N. Составить программу для формирования массива,элементами которого являются...

Сформировать массив ИМ (100), элементами которого являются числа...
Всем привет! от не могу никак решить задачку, помогите плиз:) Вот она: Сформировать массив ИМ...

Можно ли создать бинарное дерево поиска с элементами, которые являют собой имена или же что-то другое (НЕ числа)
Если да, как это сделать ? Киньте ссылку/напишите тут, если не сложно. Заранее спасибо!

Создать массив. элементами которого являются суммы цифр каждого числа
Помогите пожалуйста с задачкой. Уже около двух часов не могу с ней справиться на языке с++. Заранее...


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

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

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