program derevo;
uses crt;
type pstruct=^struct;
struct= record
inf:integer;
left,right:pstruct;
end;
var n,y,x,q,w,m:integer;
tree:pstruct;
z:struct;
function newd(x:integer):pstruct;
var p:pstruct;
begin
new(p);
p^.inf:=x;
p^.left:=nil;
p^.right:=nil;
newd:=p;
end;
procedure setleft(p:pstruct;x:integer);
begin
p^.left:=newd(X);
end;
procedure setright(p:pstruct;x:integer);
begin
p^.right:=newd(x);
end;
procedure viv(p:pstruct;m:integer);
begin
read(n);
while not eoln do if p=nil then begin
p:=newd(n);
gotoxy(q,w);
write(p^.inf);
read(n);
end
else if p^.inf<n then begin
setright(newd(p^.inf),n);
gotoxy(q+17,w+1);
writeln(n);
{q:=q+17;
w:=w+1;}
viv(newd(n),n);
end
else begin
setleft(newd(p^.inf),n);
gotoxy(q-17,w+1);
writeln(n);
{q:=q-17;
w:=w+1;}
viv(newd(n),n);
end;
end;
begin
clrscr;
tree:=nil;
q:=40;
w:=1;
viv(tree,m);
readln;
end.
М | При публикации программ используй теги (выделить, применить нужную опцию меню CODE) Lapp |