Segundo Parcial 2011 - Ejercicio 1 - b

Segundo Parcial 2011 - Ejercicio 1 - b

de Diego Gabriel Martorell Bazterrica -
Número de respuestas: 1

Buenas tardes, 

Observando la solución que se propone, la misma es recursiva, yo pensé esta otra, quería saber si es adecuada:

PROCEDURE ObtenerContacto (tel:Telefono; agenda:Agenda):InfoCuenta;
VAR TelAux:Telefono;
VAR NodoAgendaAux:Agenda;
BEGIN
     TelAux:=tel;
     NodoAgendaAux:=agenda^.primerhijo;
     WHILE NodoAgendaAux^.EsHoja=FALSE DO
          IF (NodoAgendaAux^.sighermano^.digito=Primero(TelAux)) THEN
               NodoAgendaAux:=NodoAgendaAux^.sighermano;
          ELSE
               NodoAgendaAux:=NodoAgendaAux^.primerhijo;
          END;
          TelAux:=Resto(TelAux);
     END;
     RETURN NodoAgendaAux^.contacto;
END ObtenerContacto;

Saludos y agradezco comentarios,

Diego

En respuesta a Diego Gabriel Martorell Bazterrica

Re: Segundo Parcial 2011 - Ejercicio 1 - b

de Mauricio Irace Perez -

Me sumo a la duda, hice algo bastante parecido (por no decir identico), es basicamente lo mismo que la solucion propuesta solo que no haces/hacemos recursividad con los hermanos... creo que igual que esta bien, ya que que el formato esta "separado por hermandad" y no por nivel, asi que deberia andar