Опишем процедуру вывода значений элементов двоичного дерева на экран. Для этого необходимо выполнить полный обход дерева. При обходе дерева его отдельные вершины посещаются в определенном порядке. Вывод двоичного дерева можно производить рекурсивно, выполняя для каждой вершины три действия:
• вывод числа, хранящегося в узле;
• обход левого поддерева;
• обход правого поддерева.
Порядок выполнения этих действий определяет способ обхода дерева. Способы обхода:
• прямой обход (сверху вниз);
• симметричный обход (слева направо);
• обратный обход (снизу вверх).
Процедура симметричного вывода дерева имеет следующий вид:
Procedure PrintTree(ANode : PTree);Begin if ANode <> nil then Begin PrintTree(ANode^.Left); WriteLn(ANode^.Data); PrintTree(ANode^.Right) End;End;
Основная программа осуществляет ввод чисел с клавиатуры. Используются: переменная Tree типа PTree – значение указателя на корень дерева; переменная Digit типа Integer для хранения очередного введенного числа.
Var Tree : PTree; Digit : Integer;BEGIN {основная программа} Writeln(‘Окончание ввода – 0’); Tree := nil; Read(Digit); While Digit<>0 Do Begin InsTree(Tree,Digit); Write(‘Введите очередное число: ‘); ReadLn(Digit); End; PrintTree(Tree);END.