С Новым годом! Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 02.01.2013
Сообщений: 19
1

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

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

Author24 — интернет-сервис помощи студентам
Вот сама прога , не знаю вот что , 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.05.2013, 16:41
Ответы с готовыми решениями:

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

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

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

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

0
22.05.2013, 16:41
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
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
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru