You are on page 1of 2

procedure creareAC(var r:arbore; x:integer);

begin
if r<>nil then
begin
if x<r^.inf
then creareAC(r^.st,x)
else if x>r^.inf
then creareAC(r^.dr,x)
else writeln('Elem exista deja')
end
else
begin
new(r); r^.inf:=x;
r^.st:=nil;
r^.dr:=nil
end
end;

procedure inlocuire(var r:arbore);


var q:arbore;
begin
if r^.dr<>nil then inlocuire(r^.dr)
else
begin
q^.inf:=r^.inf;
q:=r;
r:=r^.st;
dispose(q)
end;
end;

procedure SRD(r:arbore);
begin
if r<>nil then
begin
SRD(r^.st);
write(r^.inf:4);
SRD(r^.dr)
end
end;
procedure stergere(x:integer; var r:arbore);
var q:arbore;
begin
if r=nil then writeln('Cheia cautata nu este in
arbore!')
else
if x<r^.inf
then stergere(x,r^.st)
else if x>r^.inf
then stergere(x,r^.dr)
else
begin
q:=r;
if r^.st=nil
then
begin
r:=r^.dr;
dispose(q)
end
else if r^.dr=nil
then
begin
r:=r^.st;
dispose(q)
end
else inlocuire(r^.st)
end
end;

You might also like