CyberForum.ru - Форум программистов и сисадминов
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум программистов > Форум C++

Ответ Создать новую тему
 
Старый 23.12.2011, 19:08   #1
iama
Серая масса
Эксперт C++
 
Аватар для iama
 
Регистрация: 30.07.2010
Адрес: 0xDEADBEEF
Сообщений: 3,444
Репутация: 1008 (757)
По умолчанию Высота бинарного дерева поиска

Что неправильно в программе?
Полное условие

Код 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
#include <iostream>
 
#include <cstdio>
 
#pragma comment (linker, "/stack:250000000")
 
using namespace std;
 
struct node
{
    node *left, *right;
    int val;
};
 
int q;
node tr[100000];
 
int tree_insert (node *root, int val)
{
    node *fr = root;
    int h = 1;
 
    while (fr)
    {
        if (fr->val == val)
            return h;
 
        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;
            }
        }
 
        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;
}
 
int main()
{
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
 
    int l, a;
 
    l = 0;
    cin >> a;
 
    if (a != 0)
    {
        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;
 
        l = max(l, tree_insert(tr, a));
    }
 
    cout << l << endl;
 
    return 0;
}
 
iama вне форума
Другие темы раздела
C++ Как получить TID текущего потока? (библиотека pthread, компилятор g++ 4.6.1 открытый вопрос niXmanу)
Да, как? #include <windows.h> #include <pthread.h> #include <stdio.h> #include <stdlib.h> void *BusyWork(void *t) { printf("TID= %x\n", pthread_self()); printf("TID= %x\n", (unsigned int)GetCurrentThreadId ()); return NULL;. Как получить TID текущего потока? (библиотека pthread, компилятор g++ 4.6.1 открытый вопрос niXmanу)
Совместимость кода Code Composer Studio (CCS) с C/C++
С преподавателем друг друга не поняли. Как результат, прихожу с честно сделанными в Паскале лабами под занавес года, а он мне встречный подарок: "раз ты так редко ходишь, то почему не сделал лабы в CCS?". В общем логика железная. Пошел гуглить что это за CCS. А вся группа вовсе не делала этих лаб,.... Совместимость кода Code Composer Studio (CCS) с C/C++
Старый 24.12.2011, 23:50  [ТС]   #11
iama
Серая масса
Эксперт C++
 
Аватар для iama
 
Регистрация: 30.07.2010
Адрес: 0xDEADBEEF
Сообщений: 3,444
Репутация: 1008 (757)
По умолчанию Re: Высота бинарного дерева поиска

go, ты, наверно, просто неумело троллишь. Тема закрыта с пятого поста.
iama вне форума
Ответ Создать новую тему

Похожие темы
Тема Автор
C# .NET визуализация бинарного дерева поиска под WPF
Недавно столкнулся с проблемой визуализации бинарного дерева поиска. Ничего кроме реализации вручную с помощью кнопок и линий в голову не приходит. Может быть кто-то подскажет готовую удобную библиотеку под WPF ?? Заранее огромное спасибо всем откликнувшимся.
alex010503
С++ для начинающих Итератор для бинарного дерева поиска.
Господа, нужен совет знатоков. Бинарное дерево поиска представлено следующей структурой. template <typename ValueType> struct Node { ValueType value; Node *left; Node *right; } Вопрос заключается в следующем: каким образом реализуется итератор (хотя бы однонаправленный) для такой...
lemegeton
C++ Builder обход бинарного дерева поиска
Добрый день, не могу понять как с помощью TImage и Canvas вывести собственно дерево поиска, причем в консоли я его вывожу повернутым на 90 градусов т.е. так 40 20 15 10 9 7 6 5
AllwaysPain
С++ для начинающих Распечатка бинарного дерева поиска
Много где висит функция void print(int deep, ptree p) { if(p) { print(deep + 1, p->l); for ( int i = 0; i < deep; i ++ ) printf(" " ); printf(">%d",p->val);
xMURNx
С++ для начинающих (ищу) Алгоритм построения бинарного дерева поиска
Помогите пожалуйста. Если у кого завалялся алгоритм построения бинарного дерева поиска. Поделитесь. Очень нужно. Желательно что-бы цифры ставились рендомом. Но, как получится. Благодарю.
Avariya
Опции темы

Текущее время: 01:04. Часовой пояс GMT +4.

Компьютерный форум программистов и сисадминов
Powered by vBulletin® Version 3.8.7 PL2
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Рейтинг@Mail.ru Яндекс.Метрика