Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Artemist1x
1 / 1 / 0
Регистрация: 02.01.2013
Сообщений: 19
1

Структура бинарного дерева , прога написана но кое что не получается

22.05.2013, 16:41. Просмотров 279. Ответов 0
Метки нет (Все метки)

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


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
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
type
ErrorCode   = (error_noerror,error_emptyelem);
pBtreeElem  = ^BTreeElem;
 
BTreeElem   = object;
private
_data:integer;
_left, _right : pBTreeElem;
public
function  GetData : integer;
function  GetLeft : pBTreeElem;
function  GetRight: pBtreeElem;
procedure SetLeft(left:pBTreeElem);
procedure SetRight(right:pBTreeElem);
procedure SetData(data:integer);
function  Find_(data:integer):pBTreeElem;
procedure obhod_;
 
end;
 
BTree = object
private
root : pBTreeElem;
 
public
     function  Find(data:integer):            pBtreeElem;
     function  Add(data:integer):             pBtreeElem;
     Procedure Obhod;
end;
 
function BTreeElem.GetData:integer;
begin
GetData:=_data;
end;
function BTreeElem.GetLeft:pBTreeElem;
begin
GetLeft:=_left;
end;
function BTreeElem.GetRight:pBTreeElem;
begin
GetRight:=_right;
end;
procedure BtreeElem.SetLeft(left:pBTreeElem);
begin
_Left:=left;
end;
procedure BtreeElem.SetRight(right:pBTreeElem);
begin
_right:=right;
end;
procedure BtreeElem.SetData(data:integer);
begin
_data:=data;
end;
function BtreeElem.Find_(data:integer): pBTreeElem;
begin
if _data = data then
     Find_ := @Self
else if _data < data then
     begin
      if _left <> nil  then
         Find_ := _left^. Find_(data)
        else
         Find_ := @Self;
     end
else
 begin
 if _right <> nil then
         Find_ := _right^. Find_(data)
      else
         Find_ := @Self;
 end;
 
end;
 
procedure BTreeElem.Obhod_;
begin
if _left<>nil then
 _left^.obhod_;
write(' ',_data);
if _right<>nil then
 _right^.obhod_;
end;
 
{Btree interface}
function  Btree.Find(data:integer):            pBTreeElem;
var
x:pBTreeElem;
begin
if root=nil then
   Find:=nil
else
  begin
  x:=root^.Find_(data);
    if x^.GetData=data then Find:=x
    else Find:=nil;
  end;
end;
 
function  Btree.Add(data:integer):             pBtreeElem;
var y,x:pBTreeElem;
begin
if root=nil then
   Add:=nil
else
 begin
  x:=root^.Find_(data);
  if x^.GetData=data then Add:=x
  else
  begin
       new(y);
       y^.SetLeft(nil);
       y^.SetRight(nil);
       y^.SetData(data);
       if x^.GetData < data then
          x^.SetLeft(y)
       else x^.SetRight(y);
  end;
 end;
 
 
end;
 
Procedure Btree.Obhod;
begin
if root<>nil then
root^.obhod_;
end;
 
 
begin
end.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2013, 16:41
Ответы с готовыми решениями:

Структура в Ветви бинарного дерева
Есть программа, которая работает, но в ветвях дерева - x. Вместо x, необходимо использовать...

Структура и кое-что не понятно...
Имеется такая структура struct Person { std::string surname; unsigned int year; bool...

Не получается кое-что
Суть программы заключается в следующем. Я динамически выделяю память под двухмерный массив, прошу...

нужно разобраться с блоком див.не получается кое что
Вообщем делаю сайт с нуля,для лучшего запоминания материала.(так как учу html css php) Сделал...

Метод адресирования элементов бинарного дерева. Что значит?
Добрый вечер. В задании сказано построить структуру-бинарное дерево и т.д. И разработать метод...

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

Что еще должен уметь итератор для бинарного дерева поиска?
Что должен уметь итератор для бинарного дерева поиска кроме того, что ниже? И что должен делать...

в каком языке написана прога?
#include&lt;stdio.h&gt; #include&lt;math.h&gt; #include&lt;conio.h&gt; void main () { float a,b,c,d,x,y;...

Запись бинарного дерева в файл и восстановление из него этого дерева
Задача такая: есть бинарное дерево. Каждый элемент дерева содержит 3 указателя - 1 указатель на...


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

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

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