2 / 2 / 0
Регистрация: 03.06.2009
Сообщений: 13
1

Количество листьев в бинарном дереве

30.05.2011, 22:12. Показов 11084. Ответов 3
Метки нет (Все метки)

Задача: Найти количество листьев в дереве.
Собственно ввод и вывод дерева есть:

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
#include <iostream.h>
#include <iomanip.h>
 
using namespace std;
 
struct tree
 {
       int info;
       tree *left, *right;
 };
 
int InsertNode(tree * &root, int k) //Ôîðìèðîâàíèå ñòðóêòóðû äåðåâà
 {
                    int list;
                    list=0;
                    if(root==NULL)
                     {
                                  root = new tree;
                                  root->info=k;
                                  root->left=NULL;
                                  root->right=NULL;
                                  list++;
                     }
                    else
                     if(k<root->info)
                      InsertNode(root->left,k);
                     else
                      if(k>root->info)
                       InsertNode(root->right,k);
                      else
                       cout<<"Takoe chislo uzhe est' v dereve"<<endl;
 }
 
int MakeTree(tree * &root) //Ââîä ýëåìåíòîâ äåðåâà
 {
                  int k;
                  cout<<"vvedite posledovatelnost chisel i zakonchite ee nulem"<<endl;
                  cin>>k;
                  while(k)
                   {
                          InsertNode(root,k);
                          cin>>k;
                   }
 }
 
int PrintTree(tree * root, int level) //Âûâîä äåðåâà
 {
                   if(root)
                    {
                           PrintTree(root->left,level+1);
                           cout<<setw(2*level)<<root->info<<endl;
                           PrintTree(root->right,level+1);
                    }
 }
 
int main ()
 {
         int list;
         tree * root=NULL;
         bool test=false;
         MakeTree(root);
         cout<<"Tree : "<<endl;
         PrintTree(root,1);
         cout<<"V dereve : "<<list-1<<" list'ev"<<endl;;
         system("pause");
 }
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2011, 22:12
Ответы с готовыми решениями:

Найти сумму листьев в бинарном дереве поиска
Дано бинарное дерево поиска(ключи-целые числа).Найти сумму листьев. Вот мой код.Но он не...

Как в бинарном дереве у всех листьев вычесть введенное число?
вот кусок int main(void) { /* Первоначально дерево пусто*/ sNode *root = NULL; int...

Количество листов в бинарном дереве
дан указатель р1 на корень непустого дерева. найти количество листов void print (PNode Tree, int...

Вывести количество вершин в бинарном дереве
Нужно найти количество вершин в бинарном дереве, но у меня в коде где-то ошибка, потому что...

3
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
01.06.2011, 22:14 2
Ну и какие попытки для решения задачи ты уже предпринимал?
0
5 / 5 / 2
Регистрация: 02.10.2011
Сообщений: 87
04.12.2012, 14:54 3
не решили задачу?
в этой теме описывали одно из решений
Подсчитать количество листьев в дереве
0
4201 / 1793 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
04.12.2012, 15:45 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
size_t CoutTerminal(tree *root)
{
 size_t result;
 if ((root->left==NULL)&&(root->right==NULL)
 {
  result=1;
 }
 else
 {
  result=0;
 }
 if (root->left)
 {
  result+=CoutTerminal(root->left);
 }
 if (root->right)
 {
  result+=CoutTerminal(root->right);
 } 
 return result;
}
Добавлено через 1 минуту
Все узлы тоже считать?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2012, 15:45
Помогаю со студенческими работами здесь

Бинарные деревья: Посчитать количество дедов в бинарном дереве
Функция выбрасывает исключение. Что здесь неправильно,и как написать правильно? int...

Найти в бинарном дереве максимальный элемент и количество его повторений
Найти максимальный элемент бинарного дерева и количество повторений максимального элемента в данном...

Поиск листьев в дереве
Подскажите пожалуйста. Хочу изменить функцию вывода элементов дерева, так чтобы выводились те...

Ошибка в считывание листьев в дереве
Написал программу для считывания листьев в дереве, но в строке 56 ошибка: invalid conversion from...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru