Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
4 / 3 / 4
Регистрация: 06.12.2011
Сообщений: 63

Вывести двоичное дерево в строку

10.12.2011, 14:22. Показов 2193. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача. Вывести бинарное дерево в виде строки так, что если A – отец, а B, C – сыновья, то строка имеет вид ((B)(A)(C)).

Как это сделать? Исользовать при этом обход дерева ЛЕВЫЙ-КОРЕНЬ-ПРАВЫЙ???

Добавлено через 13 часов 29 минут
Никто не работал с деревьями что ли?

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
uses crt;
type pnode=^node;
     node=record;
     data:integer;
     left,right:pnode;
     end;
 
var tree:pnode;
    i,n,x:integer;
    prov:boolean;
 
procedure add(var tree:pnode; x:integer);
begin
  if Tree=nil then begin
    new(tree);
    tree^.data:=x;
    tree^.left:=nil;
    tree^.right:=nil;
    Exit;
  end;
  if x<tree^.data then
       add(tree^.left,x)
  else add(Tree^.right,x);
end;
 
procedure LKP(tree:pnode);
begin
  if tree=nil then Exit;
  LKP(tree^.LEFT);
  write(' ', tree^.data);
  LKP(tree^.right);
end;
 
BEGIN
writeln('Создание дерева.');
write('Введите кол-во элементов: ');
readln(n);
for i:=1 to n do begin
   readln(x);
   add(tree,x);
end;
writeln;
writeln;
LKP(tree);
END.
Добавлено через 4 минуты
Это всё что есть. Добавляемые элементы в дерево сразу сортируются! Процедура LKP выводит все эементы дерева слево - направо уже по возрастанию(т.к. дерево сортируется при создании). Осталось только немного изменить код процедуры LKP(использует проход по дереву левый - корень правый).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.12.2011, 14:22
Ответы с готовыми решениями:

Двоичное дерево
Помогите найти ошибку, в консоль вообще ничего не выводится: #include&lt;iostream&gt; #include&lt;string&gt; #include&lt;fstream&gt; ...

Двоичное дерево
Добрый день! Если поможете хотя бы с несколькими стратегиями, буду благодарен! Задание звучит так: &quot;Сделайте двоичное...

Двоичное дерево
Помогите пожалуйста построить двоичное дерево и найти в нём длину пути(количество ветвей от корня) до минимального элемента

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,902
Записей в блоге: 12
10.12.2011, 14:55
Ну у тебя ж уже все есть. Добавь скобки, где нужно:

Pascal
1
2
3
4
5
6
7
8
9
10
11
procedure LKP(tree:pnode);
begin
   write('(');
   if tree <> nil then
   begin
      LKP(tree^.LEFT);
      write('(', tree^.data, ')');
      LKP(tree^.right);
   end;
   write(')');
end;
("пустые" потомки отображаются пустыми скобками)
1
4 / 3 / 4
Регистрация: 06.12.2011
Сообщений: 63
10.12.2011, 17:13  [ТС]
А как сделать, чтобы пустые "потомки" отображались как "(-)"? Никак не могу так сделать, просто рекурсию плохо понимаю

Добавлено через 3 минуты
вроде сделал
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
procedure LKP(tree:pnode);
begin
   write('(');
   if tree <> nil then
   begin
      LKP(tree^.LEFT);
      write('(', tree^.data, ')');
      LKP(tree^.right);
   end
   else write('-');
   write(')');
end;
Добавлено через 10 минут
А никак нельзя сделать, чтобы не отображались пустые потомки последних листьев?
При вводе 3 элементов..
например 6,2,7
((6)(2)(7))
а не
(((-)(2)(-))(6)((-)(7)(-)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2011, 17:13
Помогаю со студенческими работами здесь

Двоичное дерево
Здравствуйте! Помоги задачу решить! Сразу говорю: это не от лени, нам просто мало объясняют! Хотя бы направление дайте, подсказку...Прогу...

Двоичное дерево (теория)
Преподаватель задал вопрос: &quot;Двоичное дерево. Логическое описание.&quot;... =-O Что именно подразумевает вопрос &quot;Логическое...

Двоичное поисковое дерево
Добрый день! Вопрос следующий: есть родительский узел со значением 10. У него есть левый потомок со значением 5. Может ли быть...

Нарисовать двоичное дерево
Друзья! Помогите разобраться. Нужно на листочке нарисовать двоичное дерево по таблице (файл прикрепил). Корень дерева - в вершине с...

Двоичное дерево Хаффмана
Дана некоторая последовательность данных...(то есть набор каких то значений)...этот набор представляет из себя набор конечных потомков...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru