• Viernes 19 de Abril de 2024, 04:08

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - rebosador

Páginas: [1]
1
Pascal / Re: Funcion Padre
« 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.

2
Pascal / Imprimir Por Niveles
« en: Martes 23 de Mayo de 2006, 17:27 »
Hola a todos, se q hay un tema abierto de arboles multicamino pero ese chico explica el procedimiento usando una pila o una cola, yo lo hago de manera recursiva xo a la hora de mostrar los hijos lo hace desordenadamente, y no por orden en el arbol
un ejemplo seria:
            1
             /
            2 -  3
            /     /
           4     5

el resultado es 1 2 3 5 4 y tendria q ser 1 2 3 4 5

os dejo mi codigo para ver si alguien ,me puede echar un cable sobre lo q tendria q cambiar.


procedure imprimirPorNiveles(a:tipoArbolGen);
  begin
    if a<>nil then
        mostrardatoscliente (a^.cliente);
    if a^.siguiente<>nil then
        imprimirporniveles (a^.siguiente);
    if a^.hijo<>nil then
        imprimirporniveles (a^.hijo);
  end;

pienso q el planteamiento es bueno xo no doy con ello.

aunq no sepais cmo acerlo, gracias de todas formas x molestaros en leer esto!!
saludos a todos!!

Páginas: [1]