0 / 0 / 1
Регистрация: 24.03.2016
Сообщений: 15
1

Бинарное дерево поиска

29.12.2016, 10:43. Показов 1664. Ответов 1
Метки нет (Все метки)

Напечатать элементы дерева с указанием их уровня в порядке возрастания уровней
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.12.2016, 10:43
Ответы с готовыми решениями:

Бинарное дерево поиска
Всем привет,мне нужна ваша помощь. не работает программа,что надо сделать с ней? Program...

Ввести 10-15 целых чисел и построить из них бинарное дерево поиска
Ввести 10-15 целых чисел и построить из них бинарное дерево поиска . Хелп плиз , вообще не вкуриваю...

Бинарное дерево поиска - улучшение "визуализации" дерева
Здравствуйте, есть программа, формирующая выводящая на экран бинарное дерево поиска, значения...

Бинарное дерево
Бинарное дерево (построить и описать фрагмент кода) Помогите пожалуйста решить.

1
4610 / 2307 / 2205
Регистрация: 10.12.2014
Сообщений: 8,837
30.12.2016, 06:06 2
Лучший ответ Сообщение было отмечено Wendiya как решение

Решение

Pascal
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
const
  minRandomValue = 0;
  maxRandomValue = 20;
 
type
  tree = class
    D : Integer;
    L, R : tree;
    
    constructor (D : Integer);
    begin
      Self.D := D;
      L := nil; R := nil;
    end;
    
    procedure Add(D : Integer);
    begin
      if Self.D > D then
        if L = nil then L := New tree(D) else L.Add(D)
      else
        if R = nil then R := New tree(D) else R.Add(D);
    end;
    
    function inTree(D : Integer) : Boolean;
    begin
      case sign(Self.D - D) of
        +1 : Result := (L = nil ? False : L.inTree(D));
         0 : Result := True;
        -1 : Result := (R = nil ? False : R.inTree(D));
      end;
    end;
  end;
  
function createTree(n : Integer) : tree;
begin
  if (n < 1) or (n > maxRandomValue - minRandomValue) then
    begin
      WriteLn('Задано недопустимое число элементов дерева...', NewLine, 'Аварийное завершение работы программы.');
      Halt;
    end;
  Result := New tree(Random(minRandomValue, maxRandomValue));
  var r : Integer;
  for var i := 2 to n do
    begin
      repeat
        r := Random(minRandomValue, maxRandomValue);
      until not Result.inTree(r);
      Result.Add(r);
    end;
end;
 
procedure printLevel(Level, treeLevel : Integer; branch : tree; var Count : Integer);
begin
  if Level = treeLevel then
    begin
      Count += 1;
      WriteLnFormat('{0} : {1}', treeLevel, branch.D);
    end
  else
    begin
      if branch.L <> nil then printLevel(Level, treeLevel + 1, branch.L, Count);
      if branch.R <> nil then printLevel(Level, treeLevel + 1, branch.R, Count);
    end;
end;
 
begin
  Randomize;
  var root := createTree( ReadLnInteger('Число случайных элементов дерева (от 1 до ' + (maxRandomValue - minRandomValue) + '):') );
  WriteLn('Дерево создано.');
  WriteLn('Элементы дерева в порядке возрастания уровней:');
  var Level := 0; var Count : Integer;
  repeat
    Count := 0;
    printLevel(Level, 0, root, Count);
    Level += 1;
  until Count = 0;
  WriteLn('Конец работы программы.');
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.12.2016, 06:06

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

Построить бинарное дерево из целочисленных элементов. Найти наименьший элемент дерева
Построить бинарное дерево из целочисленных элементов. Найти наименьший элемент дерева. &lt;--- вот...

Реализовать бинарное упорядоченное дерево, в котором хранятся различные (без повторений) целые числа
Реализовать бинарное упорядоченное дерево, в котором хранятся различные (без повторений) целые...

Дерево поиска
помогите решить, пожалуйста в дереве поиска посчитать количество узлов на заданном уровне m


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

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

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