trasp5

Anuncio
ÁRBOLES BINARIOS DE BÚSQUEDA
Type ABB=NodoPtr;
function Encontrar (k: elem, p:ABB) :NodoPtr;
begin
If esvacio(p) then encontrar:=nil
else if k=p^.dato then encontrar:=p
else if k<dato(p) then
encontrar:=encontrar(k, p^.izq)
else
encontrar:=encontrar(k, p^.der)
end;
procedure insertar (k: elem, var p:ABB);
begin
If esvacio(p) then p:= NuevoNodo(k)
else if k<dato(p) then
insertar (k, p^.izq)
else if k>dato(p) then
insertar (k, p^.der)
end;
procedure bor_min (var p: NodoPtr, var min: elem);
var
temp: NodoPtr;
begin
if (p^.izq <> nil) then
bor_min(p^.izq, min)
else begin
min:= p^.dato;
temp:=p;
p:= p^.der;
dipose (temp);
end
end;
procedure borrar (k:elem; var p: ABB);
var
temp: NodoPtr;
begin
if (p<>nil) then
if k < p^.dato then borrar(k, p^.izq)
else if k > p^.dato then borrar(k, p^.der)
else if (p^.izq<>nil and p^.der<>nil) then
begin
bor-min (p^.der, min);
p^.dato := min
end
(*2 hijos*)
else begin
temp:= p;
if (p^.izq=nil and p^.der=nil) then p:=nil
else if (p^.izq=nil) then p:=p^.der
else p:= p^.izq
dispose(temp)
end
end;
Descargar