С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/79: Рейтинг темы: голосов - 79, средняя оценка - 4.51
 Аватар для AC13
7 / 7 / 0
Регистрация: 13.09.2009
Сообщений: 263

Бинарное дерево на Паскале.

05.11.2009, 16:17. Показов 15400. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста реализовать дерево
____A
__B___C
______D
____E___F
__G_H__L_K

1) посредством массивов;
2) списков сыновей;
3) левых сыновей и правых братьев;
4) левых и правых сыновей.
И потом составить программу для заданной реализации АТД «дерева». В программе необходимо реализовать оператор MAKENULL (делает дерево пустым).


Буду очень благодарна!!! ))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.11.2009, 16:17
Ответы с готовыми решениями:

бинарное дерево
как сделать бинарное дерево???

Бинарное дерево
Привет, соседи! Столкнулся со следующей задачей: Написать программу, которая создает бинарное дерево, состоящее из целых чисел,...

Бинарное дерево
кто нибудь!!!!!!!!!!! помогите!!!!! мне нужно к зачету сдать задачу, а как с нею бороться не знаю: Написать программу, которая...

4
 Аватар для Dnnn
1063 / 130 / 34
Регистрация: 09.10.2009
Сообщений: 271
05.11.2009, 18:20
вижу, никто не отвечает, поэтому спрошу у автора.
а теорию Вам какую-нибудь объясняли? непонятно, по какому принципу дерево строилось (если конечно А, В, С, Д - это именно значения элементов, символьные).
просто нас например учили - если есть бинарное дерево с известным корнем (первым элементом), то строится оно дальше по правилу - если добавляемый эл-т меньше корня - добавляем его влево ("левый сын"), если больше - вправо ("правый сын"). а тут А в корне, а В почему-то слева - правило построения другие?
и далее тоже хорошо б на примерах пояснить, что за "дерево левых сыновей и правых братьев" и все остальные пункты.
0
 Аватар для AC13
7 / 7 / 0
Регистрация: 13.09.2009
Сообщений: 263
05.11.2009, 18:39  [ТС]
Тут корень А, В - левый сын А, С - правый.
D - сын С и все остальные сыновья D.
В и С братья. E и F - братья, G, H, L и K тоже братья.

Реализация «дерева» посредством массивов:
Pascal
1
2
3
Type
tree=array[1..n] of integer;
var A:tree;
Реализация деревьев с использованием списков сыно-вей:
Pascal
1
2
3
4
5
6
Type
Tree=array[1..n] of ^ptree;
ptree=record
element:integer;
next: рtree;
end;
Реализация деревьев через левых сыновей и правых братьев:
Pascal
1
2
3
4
5
6
Type
Tree=array[1..n] of record
left_son:integer;
element:integer;
right_brother:integer;
End;
Больше в данной нам теории толком ничего нет, её не объясеяют - самоизучение.
Я так поняла, что нужно по каждой из реализаций написать программу, используя данное дерево.
И потом отдельная программа этого же дерева с оператором MAKENULL.

Dnnn, спасибо Вам, что ответили и уже неоднократно мне помогаете
0
 Аватар для Dnnn
1063 / 130 / 34
Регистрация: 09.10.2009
Сообщений: 271
06.11.2009, 10:03
честно говоря, ничего не прояснилось... пишу на всякий случай процедуры для бинарного дерева с указателем на левого и правого сына, может для п. 4 пригодится
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
program B_Tree;
type PTree = ^ TTree; {Tip- ukazatel na element dereva}
       TTree = record el: integer; {tip el-ta dereva}
                            left, right: PTree; {ukazateli na lev i prav.sina}
                   end;
var  Tree {ukaz. na koren dereva}: PTree;
      i,j,el,n: integer; {n - kol-vo el-tov dereva}
 {-------------------------------------------------------------------}
 {dobavlenie v derevo }
 procedure AddInTree(el: integer; var tree:PTree);
 var p, pr, t: PTree;
 begin new(t); t^.el := el; {sozdaem novii el-t dereva}
       t^.left := nil; t^.right := nil; {nov.el-t bydet listom dereva}
       p:= tree; pr:=nil;
       {ishem mesto privjazki }
       while p<>nil do
       begin pr := p; {"predidushii" ukazatel}
               if p^.el > el then p:=P^.left
               else p:=p^.right;
       end;
       if tree = nil then tree := t {pervii uzel dereva}
       else if pr^.el>el then pr^.left := t
             else pr^.right := t;
 end;
 {--------------------------------------------------------------------}
 { Prjamoi obxod (pechat) dereva - uzel, levoe podderevo, pravoe podderevo}
 procedure PrintTree(tree: PTree);
 begin write(tree^.el, ' ');
       if tree^.left<>nil then PrintTree(tree^.left);
       if tree^.right<>nil then PrintTree(tree^.right);
 end;
 {------------------------------------------------------------------------}
 {Udalenie dereva}
 procedure ClearTree(var p:Ptree);
 begin if p^.left <> nil then ClearTree(p^.left);
       if p^.right <>nil then ClearTree(p^.right);
       dispose(p); p:=nil;
 end;
 
begin
  write('Vvedite kol-vo el-tov dereva: '); readln(n);
  tree := nil;
  for i:=1 to n do
  begin
    write(i,' element dereva = ');
    readln(el);
    AddInTree(el, tree);
  end;
 
  if tree = nil then writeln('Derevo pusto!')
  else
  begin writeln('Obxod dereva:');
        PrintTree(tree);
        ClearTree(tree); {ochistka pamjati}
  end;
  readln;
end.
1
 Аватар для AC13
7 / 7 / 0
Регистрация: 13.09.2009
Сообщений: 263
06.11.2009, 13:10  [ТС]
СПАСИБО ))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.11.2009, 13:10
Помогаю со студенческими работами здесь

Бинарное дерево
Отобразить с помощью бинарного дерева предложение: &quot;Боженко Роксолана изучает программирование&quot;. Ключи подобрать самостоятельно....

Бинарное дерево
Создать простое бинарное дерево с именем, кто сможет помоч?

Сохранить бинарное дерево в файл
Подскажите, пожалуйста, как сохранить бинарное дерево в файл? Суть задачи: необходимо создать бинарное дерего, добавить к нему листы,...

вывести бинарное дерево на экран
у меня задание 1 построить дерево двоичного поиска, вывести его на экран любым способом (графически, вложенными скобками или отступами); ...

Бинарное дерево поиска (вывод на экран)
Бинарное дерево поиска (вывод на экран) Помогите, не могу вывести нормально дерево на экран, выводится только в немногих случаях, в...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru