Иерархическая печать дерева
Материал из Вики ИТ мехмата ЮФУ
procedure PrintlnTreeHelp<T>(root: TreeNode<T>; width: integer;
level: integer; levelIndent: string);
begin
if root = nil then
exit;
PrintlnTreeNested(root.left, width, level + 1, levelIndent);
writeln(levelIndent * level, root.data:width);
PrintlnTreeNested(root.right, width, level + 1, levelIndent);
end;
// Выводит содержимое бинарного дерева заваленным влево
procedure PrintlnTree<T>(root: TreeNode<T>; width: integer := 4; levelIndent: string := ' ');
begin
if root = nil then
writeln('<empty tree>')
else
PrintlnTreeHelp(root, width, 0, levelIndent);
end;