Parcial Mayo 2013 - Ejercicio 3

Parcial Mayo 2013 - Ejercicio 3

de Hugo Sebastian Rodriguez Reyes -
Número de respuestas: 2

Hola, tenía una duda en la solución de este ejercicio...

Solución
(* Precondición: A <> NIL AND k > 0 *)
PROCEDURE Min (A:ARBOL; k:CARDINAL; VAR dirMin:ARBOL);
VAR hijoMenor, hermanoMenor : ARBOL;
BEGIN
   dirMin := A;
   IF (k > 1) AND (A^.primerHijo <> NIL) THEN
      Min(A^.primerHijo, k - 1, hijoMenor);
      IF hijoMenor^.dato < dirMin^.dato THEN
         dirMin := hijoMenor;
      END;
   END;
   IF (A^.sigHermano <> NIL) THEN
      Min(A^.sigHermano, k, hermanoMenor);
      IF hermanoMenor^.dato < dirMin^.dato THEN
         dirMin := hermanoMenor;
      END;
   END;
END Min;

Mi duda es la siguiente, que vendrían a ser las variables hijoMenor y hermanoMenor y que valores van tomando?

Desde ya, muchas gracias.

En respuesta a Hugo Sebastian Rodriguez Reyes

Re: Parcial Mayo 2013 - Ejercicio 3

de Maria Paz Cuturi Grignola -

Tengo la misma duda sobre este ejercicio.

Intuyo que hijoMenor y hermanoMenor son procedimientos/funciones que localizan al menor de los hijos y hermanos de un nodo.

Sin embargo, en este ejercicio no se implementan esas operaciones auxiliares, solo se utilizan.

La única explicación que le encontré a esto es que la letra del ejercico dice: "Escriba, accediendo directamente a la representación y sin definir operaciones auxiliares, un procedimiento recursivo".

Yo creí que este tipo de indicaciones eran para que NO se utilicen procedimientos auxiliares, pero viendo la solución de este ejercicio parecería que se pueden utilizar y no es necesario implementarlos. ¿Está bien mi interpretación? Porque creo que la letra es bastante vaga en este sentido y quisiera saber cuándo se pueden o no utilizar procedimientos auxiliares.

Muchas gracias.