Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/68: Рейтинг темы: голосов - 68, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 03.06.2009
Сообщений: 13

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

30.05.2011, 22:12. Показов 12718. Ответов 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2011, 22:12
Ответы с готовыми решениями:

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

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

Количество листов в бинарном дереве
дан указатель р1 на корень непустого дерева. найти количество листов void print (PNode Tree, int k) { if (Tree == NULL) k = k++; ...

3
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
01.06.2011, 22:14
Ну и какие попытки для решения задачи ты уже предпринимал?
0
5 / 5 / 2
Регистрация: 02.10.2011
Сообщений: 87
04.12.2012, 14:54
не решили задачу?
в этой теме описывали одно из решений
Подсчитать количество листьев в дереве
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
04.12.2012, 15:45
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.12.2012, 15:45
Помогаю со студенческими работами здесь

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

Бинарные деревья: Посчитать количество дедов в бинарном дереве
Функция выбрасывает исключение. Что здесь неправильно,и как написать правильно? int getGrandParents(BstNode* root) { if (root ==...

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru