Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ метод группового учета аргументов https://www.cyberforum.ru/ cpp/ thread415481.html
никак не могу разобраться хотел бы применить этот метод для прогнозирования сигналов которые состоят из координат времени и значения функции. кто реализовывал уже такое..? Добавлено через 2 часа...
Covert chanell/DNS C++
Помогите!прогу делать на сях, ось Линух задание - через DNS передача скрытых пакетов по каналу Covert Chanell. Проверять работу надо прогой WiresShark - тестировать будет на ней,пакеты должны быть...
C++ Что хотел сказать автор?
Код C++ #define MAX_SIZE (8192) signed char buf; почему нельзя записать: signed char buf; точнее, чем они могут различаться? MAX_SIZE используется только в одном месте, больше в коде...
C++ Моделирование страничной виртуальной памяти и алгоритмов свопинга Господа, в общем есть задание Написать программу, реализующую, согласно варианту (табл. 2), один из алгоритмов выгрузки страниц. В программе должны присутствовать два глобальных массива, один из... https://www.cyberforum.ru/ cpp/ thread412017.html
C++ Системный таймер https://www.cyberforum.ru/ cpp/ thread411015.html
Нужно измерить время между пакетами, которые передаются по rs-232!!! Нужно использовать системный таймер и конкретно буфер OL!!! если есть разбирающиеся люди - отпишитесь пожалуйста!!!
Оператор присваивания в условии C++
Есть конструкция вида: class AC_Node; class Vector; Vector *pQueue = someValue; AC_Node* r = 0; while (r = (AC_Node*)pQueue->Dequeue()) { ....
C++ Нарушение прав доступа при записи значения в выделенную память
суть такая,есть игра ,игру запустил,запустил артмани,нашел адрес и значение которое в нем хранится. и тут на те нарушение прав доступа при записи,я бы понял это если бы память была не выделена,но...
C++ long > short ? Правда ли что long строго больше чем short ? Или существуют платформы и/или реализации, где long = short? https://www.cyberforum.ru/ cpp/ thread404045.html
C++ Библиотека метапрограммирования https://www.cyberforum.ru/ cpp/ thread403613.html
Увлекшись метапрограммированием, начатым в предыдущей теме, я решил написать небольшую библиотеку метафункций. Изначально всё это предназначалось для работы с кортежами, но на самом деле оно...
C++ HOOK для продвинутых Есть полностью работоспособная пара DLL и EXE реализующая CBT-HOOK. Хочу расширить проект: в CBTProc могу парсить только заголовок окна GetWindowText, допустим я отловил событие explorer.exe - как... https://www.cyberforum.ru/ cpp/ thread401949.html
go
Эксперт С++
3643 / 1375 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
23.12.2011, 22:12 0

Высота бинарного дерева поиска

23.12.2011, 22:12. Просмотров 11098. Ответов 10
Метки (Все метки)

Ответ

Ошибки в построении. Ясно, что ноль. Ваш main меня убил.
Пробуйте.
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include <iostream>
#include <algorithm>
 
#include <cstdio>
 
#pragma comment (linker, "/stack:250000000")
 
using namespace std;
 
struct node
{
        node *left, *right;
        int val;
};
 
int q, aq, ans[100000];
node tr[100000];
bool fl = false;
 
int tree_insert (node *root, int val)
{
 
        node *fr = root;
        int h = 1;
 
        while (fr)
        {
                if (fr->val == val)
                        return h;
                else
                if (fr->val > val)
                {
                        root = fr;
                        fr = fr->left;
 
                        if (fr == NULL)
                        {
                                fr = &tr[++q];
                                root->left = fr;
 
                                fr->left = NULL;
                                fr->right = NULL;
 
                                fr->val = val;
 
                                break;
                        }
                }
                else
                if (fr->val < val)
                {
                        root = fr;
                        fr = fr->right;
 
                        if (fr == NULL)
                        {
                                fr = &tr[++q];
                                root->right = fr;
 
                                fr->left = NULL;
                                fr->right = NULL;
 
                                fr->val = val;
 
                                break;
                        }
                }
 
                h++;
        }
 
        return ++h;
}
 
void list (node * root)
{
        if (root && fl) {
                if ( !root->left && !root->right )
                        cout << root->val;
                list (root->left);
                list (root->right);
        }
}
 
int main()
{
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
 
 
        int l, a, i;
        node *n, *p;
 
        l = 0;
        cin >> a;
 
        if (a != 0)
        {      
                fl = true;
                l = 1;
                q = 0;
                tr[0].val = a;
 
                tr[0].left = NULL;
                tr[0].right = NULL;
        }
 
        while (a != 0)
        {
                cin >> a;
 
                if (a == 0)
                        break;
 
                tree_insert(tr, a);
        }
 
        aq = 0;
 
        list(tr);
 
        if (aq)
                cout << ans[0];
 
        for (i = 1; i < aq; i++)
                cout << ' ' << ans[i];
 
        cout << endl;
 
        return 0;
}


Вернуться к обсуждению:
Высота бинарного дерева поиска
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2011, 22:12
Готовые ответы и решения:

Организация бинарного дерева поиска
Всем доброго времени суток. Передо мной встала задача организовать чтение файла и подсчёт...

Обход бинарного дерева
люди, выручайте, очень срочно нужен исходник для обхода бинарного дерева, хоть на С++, хоть на...

Необычный вывод бинарного дерева
вообщем воспользовался я поиском ничего похоже на решение моей проблемы нету. суть состоит в том...

Поиск заданного элемента бинарного дерева
Добрый вечер! Нужна ваша помощь в написании процедуры поиска заданного пользователем элемента...

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