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

Идеально сбалансированное дерево - C++

Восстановить пароль Регистрация
 
к8
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 38
23.11.2014, 21:31     Идеально сбалансированное дерево #1
В файле input.txt хранится последовательность целых чисел.По входной последовательности построить идеально сбалансированное дерево и найти для него наименьшее из значений листьев.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2014, 21:31     Идеально сбалансированное дерево
Посмотрите здесь:

C++ Сбалансированное дерево (бинарное)
C++ Сбалансированное двоичное дерево поиска
C++ Сбалансированное дерево
C++ Сформировать идеально сбалансированное бинарное дерево
Идеально сбалансированное дерево C++
C++ Сбалансированное дерево
C++ Идеально сбансированное дерево
Идеально сбалансированное дерево C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
к8
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 38
30.11.2014, 14:14  [ТС]     Идеально сбалансированное дерево #2
В файле input.txt хранится последовательность целых чисел.По входной последовательности построить идеально сбалансированное дерево и найти для него наименьшее из значений листьев.
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
#include <iostream>
#include <fstream>
using namespace std;
 
ifstream in("input.txt");
ofstream out("output.txt");
 
struct tree
{
int inf;
tree *left, *right;
};
tree *root;
 
void create (int number, tree *&root)
{
int a;
if (number>0)
{
root=new tree;
in»a;
root->inf=a;
root->left=root->right=NULL;
int numberLeft=number/2, numberRight=number-numberLeft-1;
create(numberLeft, root->left);
create(numberRight, root->right);
}
}
 
void deleteTree(tree *&root)
{
if (root)
{
deleteTree(root->left);
deleteTree(root->right);
delete root;
root=NULL;
}
}
 
void printList(tree *root, int &k)
{
if (root)
{
if (root->left!=NULL && root->right==NULL)
{
{
k++;
printList(root->left, k);
}
}
else
{
printList(root->left,k);
printList(root->right,k);
}
}
}
 
int main()
{
int x;
int k=0;
while (!in.eof())
{
in»x;
create(x,root);
}
printList(root,k);
out«k;
deleteTree(root);
in.close();
}
что не так сделала?выводил просто наименьшее значение,а не лист
zer0mail
30.11.2014, 16:32     Идеально сбалансированное дерево
  #3

Не по теме:

Имхо, если ТС, создав свыше 15 тем по программированию, не научилась форматировать, ей следует заняться чем-то другим...

Yandex
Объявления
30.11.2014, 16:32     Идеально сбалансированное дерево
Ответ Создать тему
Опции темы

Текущее время: 09:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru