// Borrar Nodo
toda la gente que no sepa borrar un nodo de un arbol.. acá esta. lo hice recién con mi novia.
Type
tarbol=^nodo;
nodo=record
numero:integer;
mayor:nodo;
menor:nodo
end;
Function MenorMayores(arbol:tarbol):tarbol;
var
begin
if arbol^.menor<>nil then
MenorMayores(arbol^.menor);
else
MenorMayores:=arbol;
end;
procedure Cambia_mayXmen(arbol:tarbol);
var
begin
aux:=arbol;
MM:=MenorMayores(arbol^.mayor);
aux2:=MM;
mm:=nil;
arbol:=aux2;
arb^.menor:=aux^.menor;
arb^.mayor:=aux^.mayor;
dispose(aux);
end;
procedure sustituir(arbol:tarbol,puntero:tarbol);
var aux:tarbol;
begin
aux:=arbol;
arbol:=puntero;
dispose(aux);
end;
procedure borrar(arbol:tarbol);
var
begin
if (arbol^.menor=nil) and (arbol^.mayor=nil) then
sustituir(arbol,nil);
else
if (arbol^.menor=nil) then
sustituir(arbol,arbol^.mayor);
else
if(arbol^.mayor=nil) then
sustituir(arbol,arbol^.menor);
else
Cambia_mayXmen(arbol);
end;
procedure borrarnodo(valor:integer; arbol:Tarbol);
var
begin
if (nil<>arbol) then
if numero<arbol^.numero then
borrarnodo(numero,arbol^.menor);
else
if numero>arbol^.numero then
borrarnodo(numero,arbol^.mayor);
else
borrar(arbol);
end;
Cualquier consulta, llame a su medico amigo


toda la gente que no sepa borrar un nodo de un arbol.. acá esta. lo hice recién con mi novia.
Type
tarbol=^nodo;
nodo=record
numero:integer;
mayor:nodo;
menor:nodo
end;
Function MenorMayores(arbol:tarbol):tarbol;
var
begin
if arbol^.menor<>nil then
MenorMayores(arbol^.menor);
else
MenorMayores:=arbol;
end;
procedure Cambia_mayXmen(arbol:tarbol);
var
begin
aux:=arbol;
MM:=MenorMayores(arbol^.mayor);
aux2:=MM;
mm:=nil;
arbol:=aux2;
arb^.menor:=aux^.menor;
arb^.mayor:=aux^.mayor;
dispose(aux);
end;
procedure sustituir(arbol:tarbol,puntero:tarbol);
var aux:tarbol;
begin
aux:=arbol;
arbol:=puntero;
dispose(aux);
end;
procedure borrar(arbol:tarbol);
var
begin
if (arbol^.menor=nil) and (arbol^.mayor=nil) then
sustituir(arbol,nil);
else
if (arbol^.menor=nil) then
sustituir(arbol,arbol^.mayor);
else
if(arbol^.mayor=nil) then
sustituir(arbol,arbol^.menor);
else
Cambia_mayXmen(arbol);
end;
procedure borrarnodo(valor:integer; arbol:Tarbol);
var
begin
if (nil<>arbol) then
if numero<arbol^.numero then
borrarnodo(numero,arbol^.menor);
else
if numero>arbol^.numero then
borrarnodo(numero,arbol^.mayor);
else
borrar(arbol);
end;
Cualquier consulta, llame a su medico amigo


