Á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;