Бинарное дерево - Просмотр дерева в следующем порядке: узел, левая ветвь, правая ветвь - Pascal ABC
Формулировка задачи:
3. Разработать программу работы с бинарным деревом. Программа должна содержать следующие процедуры, вызываемые из меню:
- построение пустого дерева;
- добавление нового элемента;
- удаление указанного элемента;
- просмотр дерева в следующем порядке: узел, левая ветвь, правая ветвь.
Как сделать именно такой просмотр. Я просто нашел другой просмотр (левая , правая, узел). Вот код:
вот тут обход
пожалуйста, помогите.
Решение задачи: «Бинарное дерево - Просмотр дерева в следующем порядке: узел, левая ветвь, правая ветвь»
textual
Листинг программы
procedure Lkp(const Tree: PNode; const aCode : String); begin if Tree=nil then exit; {Если дерево пустое - выходим.} write(' ', aCode, ':', Tree^.data); {Данные текущего узла.} Lkp(Tree^.left, aCode + '-1'); {Обход левого поддерева.} Lkp(Tree^.right, aCode + '-2'); {Обход правого поддерева.} end; {Пример вызова для распечатки всего дерева.} Lkp(Tree, '0');
Объяснение кода листинга программы
- В процедуре Lkp есть два аргумента: константный указатель на узел Tree и строка aCode.
- Если дерево пустое (Tree равно nil), то выход из процедуры с помощью оператора exit.
- Если дерево не пустое, то записывается строка ' ' (пробел, пробел, двоеточие, двоеточие, символ ':', значение поля data узла) на экран.
- Затем происходит обход левого поддерева с помощью вызова процедуры Lkp, передавая в нее Tree^.left (указатель на левое поддерево) и aCode + '-1' (строку, добавляющую к aCode дефис и единицу).
- После этого происходит обход правого поддерева с помощью вызова процедуры Lkp, передавая в нее Tree^.right (указатель на правое поддерево) и aCode + '-2' (строку, добавляющую к aCode дефис и две единицы).
- Код завершается после выхода из цикла обхода поддеревьев.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д