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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
lisenog
2 / 2 / 0
Регистрация: 03.06.2009
Сообщений: 13
#1

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

30.05.2011, 22:12. Просмотров 2802. Ответов 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");
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2011, 22:12     Количество листьев в бинарном дереве
Посмотрите здесь:

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

Как в бинарном дереве у всех листьев вычесть введенное число? - C++
вот кусок int main(void) { /* Первоначально дерево пусто*/ sNode *root = NULL; int s, n; cout&lt;&lt;&quot;Vvedite kolichestvo...

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

Ошибка в считывание листьев в дереве - C++
Написал программу для считывания листьев в дереве, но в строке 56 ошибка: invalid conversion from 'Tree' to 'int' #include &lt;iostream&gt; ...

Разобраться в бинарном дереве - C++
Нашел вот такой вариант построения бинарного дерева. Просьба прокомментировать строки кода которые выделил ниже: #include...

Строки в бинарном дереве - C++
Есть шаблонный класс бинарного дерева. Со числами он работает нормально, но при добавлении строки в соответствующий объект этого класса на...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
01.06.2011, 22:14     Количество листьев в бинарном дереве #2
Ну и какие попытки для решения задачи ты уже предпринимал?
Point_0
4 / 4 / 0
Регистрация: 02.10.2011
Сообщений: 87
04.12.2012, 14:54     Количество листьев в бинарном дереве #3
не решили задачу?
в этой теме описывали одно из решений
Подсчитать количество листьев в дереве
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2012, 15:45     Количество листьев в бинарном дереве
Еще ссылки по теме:

Предок в бинарном дереве - C++
Помогите пожалуйста! Необходимо написать программу, которая для двух вершин дерева определяет, является ли одна из них предком другой. ...

Поиск в Бинарном Дереве! - C++
Задано бинарное дерево. Определить, есть ли в этом дереве хотя бы два одинаковых элемента. Вывести на экран все одинаковые элементы в...

Удалить узел в бинарном дереве - C++
Добрый вечер. В задании нужно найти узел дерева с наибольшим показателем счетчика, после чего удалить найденный узел из дерева. В структуре...

Подсчет вершин в бинарном дереве - C++
Здравствуйте,помогите написать функцию ,которая подсчитывает число вершин на N-ом уровне бинарного дерева T(корень считать вершиной 0-го...

Поиск дубликатов в бинарном дереве - C++
Требуется создать функцию поиска дубликатов ИНФОРМАЦИОННОЙ ЧАСТИ, НЕ КЛЮЧА в бинарном дереве. Ничего похожего в гугле и здесь на...

Оператор присвоения в бинарном дереве - C++
Не смог разобраться. Прокомментируйте, будьте добры. Задание такое, определите стандартный конструктор и функции управления...


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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
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 минуту
Все узлы тоже считать?
Yandex
Объявления
04.12.2012, 15:45     Количество листьев в бинарном дереве
Ответ Создать тему
Опции темы

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