Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
profiq
3 / 0 / 0
Регистрация: 01.05.2013
Сообщений: 33
1

Бинарное дерево

08.11.2013, 22:34. Просмотров 837. Ответов 0
Метки нет (Все метки)

Здравствуйте. Помогите, решить задачу.
Условие:
Используя классы, создать бинарное дерево. В узлах бинарного дерева имеется элемент (целое число), являющийся ключом. В записях дерева хранятся также целые числа. В дереве не более 50 узлов. Элементы дерева заполнять с помощью функции генерации случайных чисел. Реализовать функцию вывода дерева на экран. Реализовать функцию, которая удаляет из дерева все узлы-дубликаты, т.е. узлы с повторяющимися значениями. Реализовать функцию, которая сортирует узлы дерева по возрастанию его информационной части.

как сделать ввод элементов бинарного дерево с помощью генератора случайных чисел?

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
#include<iostream>
using namespace std;
 
struct  node
{
  int Key;
  int Count;
  node *Left;
  node *Right;
};
 
class TREE
{
  private:
    node *Tree;//Указатель на корень дерева.
 
    void Search (int, node**);
  public:
    TREE() { Tree = NULL;}
    node** GetTree() {return &Tree;}
    void  BuildTree ();//Построение бинарного дерева.
    //Вывод дерева на экран (рекурсивный алгоритм).
    void Vyvod (node**,int);
};
 
int main ()
{
    setlocale(LC_ALL,"Russian");
  TREE A;
 
  A.BuildTree ();  A.Vyvod (A.GetTree(),0);
 
}
 
void TREE::BuildTree ()
//Построение бинарного дерева.
//Tree - указатель на вершину дерева.
{
  int el;
 
  cout<<"Вводите ключи вершин дерева: \n";
  cin>>el;
  while  (el!=0)
    { Search (el,&Tree);cin>>el; }
}
 
void TREE::Vyvod (node **w,int l)
//Изображение дерева w на экране дисплея
//         (рекурсивный алгоритм).
//*w - указатель на корень дерева.
{
  int i;
 
  if  (*w!=NULL)
  {
    Vyvod (&((**w).Right),l+1);
    for  (i=1; i<=l; i++) cout<<"   ";
    cout<<(**w).Key<<endl;
    Vyvod (&((**w).Left),l+1);
  }
}
 
 
void TREE::Search (int x,node **p)
//Поиск звена x в бинарном дереве со вставкой
//            (рекурсивный алгоритм).
//*p - указатель на вершину дерева.
{
  if  (*p==NULL)
  { // Вершины в дереве нет; включить ее.
    *p = new(node);
    (**p).Key = x;     (**p).Count = 1;
    (**p).Left = (**p).Right = NULL;
  }
  else
  if  (x<(**p).Key) Search (x,&((**p).Left));
  else
    if  (x>(**p).Key) Search (x,&((**p).Right));
    else  (**p).Count += 1;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2013, 22:34
Ответы с готовыми решениями:

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при...

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

Бинарное дерево
Нужно записать в дерево и вывести в форматированном виде каталог файлов(типа windows) на вход даны...

Бинарное дерево
Задание сделать бинарное дерево, но при добавлении появилась проблема, не могу разобраться с...

Бинарное дерево
Мой код: Patient.h // // Created by User on 26.04.2016. // #ifndef LABA_10_PATIENT_H...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2013, 22:34

Бинарное дерево
Разработать и реализовать на языке С следующие функции работой с бинарным деревом: 1. Создание...

Бинарное дерево
Помогите исправить ошибку, компилятор ругается на 110 строку, не пойму почему( #include &lt;iostream&gt;...

Бинарное дерево
Только начал изучать тему &quot;деревья&quot;. Подскажите в чем ошибка)#include &lt;iostream&gt; using namespace...


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

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

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