Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.46 KB | None | 0 0
  1. procedure make_tree(root: Pder; i, k,kol: byte; r: boolean);
  2.   var j:byte;
  3. begin
  4.   if i<=kol then
  5.     if root <> nil then
  6.     begin
  7.       if i>1 then
  8.       begin
  9.         if r then
  10.           for j:=1 to 64 div k -1 do derevo[3*i-2]:=derevo[3*i-2]+'-'
  11.         else
  12.           for j:=1 to 64 div k -1 do derevo[3*i-2]:=derevo[3*i-2]+' ';
  13.             derevo[3*i-2]:=derevo[3*i-2]+'+';
  14.         for j:=1 to 64 div k -1 do derevo[3*i-1]:=derevo[3*i-1]+' ';
  15.         derevo[3*i-1]:=derevo[3*i-1]+'|';
  16.       end;
  17.       for j:=1 to 64 div k - 3 do derevo[3*i]:=derevo[3*i]+' ';
  18.       //знак
  19.       if root^.chislo<0 then
  20.         derevo[3*i]:=derevo[3*i]+'-'
  21.       else
  22.         derevo[3*i]:=derevo[3*i]+' ';
  23.       //две цифры
  24.       derevo[3*i]:=derevo[3*i]+Chr(48+abs(root^.chislo) div 10)+ Chr(48+abs(root^.chislo) mod 10);
  25.       //аналогично с поддреревьями
  26.       make_tree(root^.left, i+1, 2*k, kol, false);
  27.       make_tree(root^.rigth, i+1, 2*k, kol, root^.left<>Nil);
  28.     end
  29.     else
  30.     begin // пустое поддерево - пробелы
  31.       if r then
  32.         for j:=1 to 64 div k do derevo[3*i-2]:=derevo[3*i-2]+'-'
  33.       else
  34.         for j:=1 to 64 div k do derevo[3*i-2]:=derevo[3*i-2]+' ';
  35.       for j:=1 to 64 div k do derevo[3*i-1]:=derevo[3*i-1]+' ';
  36.       for j:=1 to 64 div k do derevo[3*i]:=derevo[3*i]+' ';
  37.       make_tree(nil, i+1, 2*k, kol, false);
  38.       make_tree(nil, i+1, 2*k, kol, false);
  39.    end;
  40. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement