Иерархическая печать дерева
Материал из Вики ИТ мехмата ЮФУ
Версия от 12:06, 30 апреля 2016; Ulysses (обсуждение | вклад) (Новая страница: «<source lang="pascal">procedure PrintlnTreeNested<T>(root: TreeNode<T>; width: integer; levelIndent, currIndent: string); begin …»)
procedure PrintlnTreeNested<T>(root: TreeNode<T>; width: integer;
levelIndent, currIndent: string);
begin
if root = nil then
exit;
var nextIndent := currIndent + levelIndent;
PrintlnTreeNested(root.left, width, levelIndent, nextIndent);
writeln(currIndent, root.data:width);
PrintlnTreeNested(root.right, width, levelIndent, nextIndent);
end;
// Выводит содержимое бинарного дерева заваленным влево
procedure PrintlnTree<T>(root: TreeNode<T>; width: integer; levelIndent: string);
begin
if root = nil then
writeln('<empty tree>')
else
PrintlnTreeNested(root, width, levelIndent, '');
end;