uses crt;
type
ttype=integer;
ttree=^tnode;
tnode=record
left: ttree;
right:ttree;
key:integer;
level: integer;
end;
procedure add(var t:ttree;x:ttype);
procedure createnode(var p:ttree;n:ttype);
begin
new(p);
p^.key:=n;
p^.left:=nil;
p^.right:=nil;
end;
begin
if t=nil then createnode(t,x)
else with t^ do begin
if key<x then add(right,x)
else if key>x then add(left,x);end;
end;
procedure PrintDown(T: TTree);
begin
if T=nil then exit;
with T^ do begin
write(key,' ');
writeln;
PrintDown(left);
PrintDown(right);
end
end;
{процедура удаления листьев}
procedure del1(var v:ttree);
var t:ttree;
inf: integer;
begin
if v=nil then exit;
del1(v^.left);
del1(v^.right);
if (v^.left=nil) and (v^.right=nil) then dispose(v);
end;
Бинарные деревья(функция Dispose), Проблема с удалением листьев дерева |