Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure make_tree(root: Pder; i, k,kol: byte; r: boolean);
- var j:byte;
- begin
- if i<=kol then
- if root <> nil then
- begin
- if i>1 then
- begin
- if r then
- for j:=1 to 64 div k -1 do derevo[3*i-2]:=derevo[3*i-2]+'-'
- else
- for j:=1 to 64 div k -1 do derevo[3*i-2]:=derevo[3*i-2]+' ';
- derevo[3*i-2]:=derevo[3*i-2]+'+';
- for j:=1 to 64 div k -1 do derevo[3*i-1]:=derevo[3*i-1]+' ';
- derevo[3*i-1]:=derevo[3*i-1]+'|';
- end;
- for j:=1 to 64 div k - 3 do derevo[3*i]:=derevo[3*i]+' ';
- //знак
- if root^.chislo<0 then
- derevo[3*i]:=derevo[3*i]+'-'
- else
- derevo[3*i]:=derevo[3*i]+' ';
- //две цифры
- derevo[3*i]:=derevo[3*i]+Chr(48+abs(root^.chislo) div 10)+ Chr(48+abs(root^.chislo) mod 10);
- //аналогично с поддреревьями
- make_tree(root^.left, i+1, 2*k, kol, false);
- make_tree(root^.rigth, i+1, 2*k, kol, root^.left<>Nil);
- end
- else
- begin // пустое поддерево - пробелы
- if r then
- for j:=1 to 64 div k do derevo[3*i-2]:=derevo[3*i-2]+'-'
- else
- for j:=1 to 64 div k do derevo[3*i-2]:=derevo[3*i-2]+' ';
- for j:=1 to 64 div k do derevo[3*i-1]:=derevo[3*i-1]+' ';
- for j:=1 to 64 div k do derevo[3*i]:=derevo[3*i]+' ';
- make_tree(nil, i+1, 2*k, kol, false);
- make_tree(nil, i+1, 2*k, kol, false);
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement