RosettaCodeData/Task/Tree-traversal/Adina/tree-traversal-1.adina

64 lines
2.3 KiB
Plaintext

структура узел
данные левая-ветвь правая-ветвь
#:суффикс -узла
лист значение =
узел значение ложь ложь
дерево =
узел 1
узел 2
узел 4
лист 7
ложь
лист 5
узел 3
узел 6
лист 8
лист 9
ложь
прямой дерево действие =
если дерево тогда
действие данные-узла(дерево)
прямой левая-ветвь-узла(дерево) действие
прямой правая-ветвь-узла(дерево) действие
центрированный дерево действие =
если дерево тогда
центрированный левая-ветвь-узла(дерево) действие
действие данные-узла(дерево)
центрированный правая-ветвь-узла(дерево) действие
обратный дерево действие =
если дерево тогда
обратный левая-ветвь-узла(дерево) действие
обратный правая-ветвь-узла(дерево) действие
действие данные-узла(дерево)
поуровневый дерево действие =
пусть цикл
деревья список(дерево)
если не пустой?(деревья) тогда
цикл
применить добавить
цикл/список
для
дерево деревья
#:когда дерево
действие данные-узла(дерево)
список левая-ветвь-узла(дерево) правая-ветвь-узла(дерево)
запуск имя обход =
вывести имя
обход дерево
функция (данные)
вывести « »
вывести данные
вывести/перенос «»
запуск «preorder: » прямой
запуск «inorder: » центрированный
запуск «postorder: » обратный
запуск «level-order: » поуровневый