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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ пожалуйста расскажите как написать программы http://www.cyberforum.ru/cpp-beginners/thread308727.html
5.1. Обработка двумерных массивов 1. **Получить квадратную матрицу порядка n, элементами которой являются заданные действительные числа а1, ..., аnn, расположенные в ней по схеме, которая приведена на рисунке: (стрелочка вниз, стрелочка вверх, стрелочка вниз, стрелочка вверх) 2. **Найти максимальный среди элементов строк, упорядоченных по возрастанию или по убыванию, заданной целочисленной ...
C++ составить блок-схему к массиву Доброе время суток всем. Помогите составить блок-схему к массиву. вот сама программа: #include<iostream.h> int main (){ int a; int b=0,i; int x=0; for (i=0; i<10; i++) cin>>a; for (i=0; i<10; i++) { http://www.cyberforum.ru/cpp-beginners/thread308699.html
Определить окружность минимального радиуса C++
На плоскости задано N окружностей (2<= N<=10). Надо определить окружность минимального радиуса, такую, чтобы она включала в себя все заданные окружности. Окружности задаются радиусом и координатами центра. Координаты центров окружности лежат в диапазоне -1000<=[<=1000. Ввод из файла okrug.in. Вывод в файл okrug.out. Задача на языке СИ. Помогите пожалуйста)
Битовые поля C++
Есть переменная A типа unsigned char. Я хочу проверить является ли 7ой бит единицой. Для этого я делаю так: if(A&(1<<7)) dosomething Допустим у меня есть структура: struct BIT{ unsigned int cod1:1;
C++ MAP в качестве ключа http://www.cyberforum.ru/cpp-beginners/thread308686.html
Есть map<string, map<Language, string> lang; map<string, map<Language, string> >::iterator itr = langHashtable.find(keyLabe); Нахожу значение,теперь мне надо у этого значения (то что я нашел с помощью find),тоже найти значение, и вернуть его. Как это сделать? map<string, map<Language, string> >::iterator itr = langHashtable.find(keyLabel); if (itr != langHashtable.end() ){ .... } ...
C++ Засекание время от и до определённого момента и записание в файл Нужно засекти время в секундах , например , от момента когда зменной присвается значение 1 до тех пор пока не переприсвоится на 2 , вывести его на экран , и записать в файл , при чём , если в етом файле есть уже записаное ранее время то переписать его только тогда когда полученое время меньше от старого... подробнее

Показать сообщение отдельно
lisenog
2 / 2 / 0
Регистрация: 03.06.2009
Сообщений: 13

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

30.05.2011, 22:12. Просмотров 2729. Ответов 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");
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru