Иерархическая печать дерева — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Новая страница: «<source lang="pascal">procedure PrintlnTreeNested<T>(root: TreeNode<T>; width: integer; levelIndent, currIndent: string); begin …»)
(нет различий)

Версия 12:06, 30 апреля 2016

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;