С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Fiks19
1 / 1 / 1
Регистрация: 07.01.2012
Сообщений: 44
1

Преобразование сбалансированного дерева в дерево поиска

20.01.2013, 18:57. Просмотров 1606. Ответов 2
Метки нет (Все метки)

пишу программу по примерам не могу найти как преобразовать сбалансированное дерево в дерево поиска
вот пример моего кода
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
# include <iostream.h>
# include <conio.h>
# include <windows.h>
 
//Наша структура
struct node
{
    int info; //Информационное поле
    node *l, *r;//Левая и Правая часть дерева
};
 
node * tree=NULL; //Объявляем переменную, тип которой структура Дерево
 
//ФУНКЦИЯ ЗАПИСИ ЭЛЕМЕНТА В БИНАРНОЕ ДЕРЕВО
void push_id(node **t,int n)
{
 
int count = 0;
if(n==0)
*t=NULL;
else
{
int nl=n/2;
int nr=n-nl-1;
int a;
node *tmp=new node;
cout<<"\nведите число:  ";
cin >>a;
tmp->info=a;
count++;
push_id(&tmp->l, nl);
push_id(&tmp->r, nr);
*t=tmp;
}
}
 
 
 
//ФУНКЦИЯ ОТОБРАЖЕНИЯ ДЕРЕВА НА ЭКРАНЕ
void print (node *t,int u)
{
 
print(t->l,u+1);
for(int i=0;i<u;i++)
cout << "\t";
cout << t->info << endl;
print(t->r,u+1);
}
}
 
void search_max(node *t){
 
 
   if (t==NULL) return; //Если дерево пустое, то ничего делать не нужно выходим
   search_max(t->r);
   if (t->r==NULL) {
 
      cout << t->info;
   }
 
 
}
 
 
 
 
 
 
void main ()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
    int n; //Количество элементов
    int s; //Число, передаваемое в дерево
    int a;
    cout << "\t\t Лабараторная 8 - Задание 16 - Подзадание 3\n\n";
 do {
 
        cout<<"\n1. Введите количество элементов\n";
        cout<<"2. Ввести данные\n";
        cout<<"3. Вывод дерева на экран\n";
        cout<<"4. Вывести максимальный элемент в дереве\n";
        cout<<"0. Выход\n";
        cout << "\n\nВведите действие: " ;
        cin>>a;
        switch (a) {
             case 1:    cout<<"\nвведите количество элементов:  ";
                        cin>>n; //Вводим количество элементов
                        break;
             case 2:   // for (int i=0;i<n;++i)
                        //{
                           //   cout<<"\nведите число:  ";
                             //Считываем элемент за элементом
                            push_id(&tree,n); //И каждый кладем в дерево
                    //}
                        break;
             case 3:    cout<<"\nваше дерево:\n";
                        print(tree,0);
                        break;
             case 4:    cout << "\nмаксимальный элемент в дереве: ";
                        search_max(tree);
                        cout << "\n";
                        break;
             case 5:    push_bin(tree,n);
                        break;
             case 6:    cout<<"\nваше дерево:\n";
                        print_bin(tree,0);
                        break;
                }
}
while (a!=0);
cout << "\n\n\t\t\tЗАВЕРШЕНИЕ!";
getch();
}
подскажите что да как или посоветуйте где прочитать чтоб доступно было
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2013, 18:57
Ответы с готовыми решениями:

Преобразование идельно сбалансированного дерева в дерево поиска
Здравствуйте, уважаемые специалисты! Вынуждена просить у вас помощи, ибо самой...

Удаление элементов из бинарного дерева (не дерево поиска)
Задание заключается в создании бинарного дерева, из букв введенной строки,...

Сформировать бинарное дерево поиска и определить максимальную глубину дерева
Добрый день всем. По задаче необходимо сформировать бинарное дерево поиска и...

Алгоритм построения сбалансированного дерева
Ребят очень очень нужна ваша помощь. Объясните алгоритм построения сбаланс...

Создание и обработка сбалансированного дерева
Имеется программа: #include &quot;stdafx.h&quot; #include &quot;windows.h&quot; #include...

2
MrGluck
Модератор
Эксперт CЭксперт С++
8106 / 4958 / 1436
Регистрация: 29.11.2010
Сообщений: 13,454
20.01.2013, 19:07 2
Вам нужно реализовать сбалансированное бинарное дерево, тогда ничего преобразовывать не надо будет.
1
Fiks19
1 / 1 / 1
Регистрация: 07.01.2012
Сообщений: 44
21.01.2013, 16:58  [ТС] 3
Просто по заданию написано:
Сформировать идеально сбалансированное бинарное дерево, тип информационного
поля указан в варианте.
Распечатать полученное дерево.
Выполнить обработку дерева в соответствии с заданием, вывести полученный
результат.
Преобразовать идеально сбалансированное дерево в дерево поиска.
Распечатать полученное дерево.

Добавлено через 21 час 29 минут
подскажите как реализовать задание в прошлом посте
к примеру возьми то, создай то или это
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2013, 16:58

Деревья (алгоритм создания СБАЛАНСИРОВАННОГО бинарного дерева)
Здравствуйте! Подскажите пожалуйста алгоритм создания СБАЛАНСИРОВАННОГО...

Поиск минимального элемента идеально сбалансированного дерева
Как найти минимальный элемент? Вообще не представляю. зы. Дерево поиска...

Построение идеально сбалансированного дерева, значения читаются из текстового файла
Разработать программу построения идеально сбалансированного дерева, элементами...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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