1
« en: Miércoles 24 de Mayo de 2006, 18:32 »
hola, te mando la funcion es hijo modificada ya que la funcion es padre en principio la tienes bien aunq no se si e cambiado algo, miratela tb x si acaso, ok?
function eshijo (a:tipoarbolgen; nifcliente:tiponif; var encontrado:boolean):boolean;
var
aux:tipoarbolgen;
begin
eshijo:=false;
aux:=a^.hijo;
encontrado:=false;
while (aux<>nil) and (not encontrado) do
begin
encontrado:=aux^.cliente.nif=nifcliente; //compruebo si los nifs son iguales
aux:=aux^.siguiente;
end;
eshijo:=encontrado;
end;
y x si acaso la unidad padre:
function padre(a:tipoArbolGen; nifCliente:string):tipoArbolGen;
var
aux:tipoarbolgen;
enc:boolean;
begin
aux:=a;
padre:=nil;
if eshijo (aux,nifcliente,enc) then
padre:=aux
else
begin
if not enc and (aux^.hijo<>nil) then
padre:=padre (aux^.hijo,nifcliente);
if not enc and (aux^.siguiente<>nil) then
padre:=padre (aux^.siguiente,nifcliente);
end;
end;
gracias a ti tb xq me as dado ideas de como acer estas funciones q yo tb estaba un poco perdido... de todas formas el problema q tenias es q la funcion padre es recursiva xo la hijo no puede serlo nunk xq simplemente buscas entre todos sus hijos y ya esta...un saludo y espero q te haya servido de algo.