mirando la solucion, me quedo una duda de entrada, y es que en la letra dice que la raiz no tiene informacion, y sin embargo, en la implementacion dada en esta SI tiene. Suponiendo que lo que va ahi es un caracter no numerico o algun, llamemosle, "comodín", estaria mal en vez de usar un booleano esHoja, hacer un enumerado que indique si es hoja,raiz, o "del medio"..? a pesar de las claras complicaciones que eso conlleva?
Re: Segundo Parcial julio 2011 - ejercicio 1.a
Hola Mauricio,
A mi me surge, otra duda, es necesario indicar si es hoja o no? Que sea hoja implica que el hijo es NIL, entonces esa información la puedo tener, no veo la necesidad de en el tipo, definir eso. La idea del comodín, me parece que no es necesaria ya que sabes que el primer elemento, sólo tendrá información acerca del siguiente hermano o primer hijo, no se si me explico, la raíz del árbol, de la agenda, no contiene ni info de contacto ni un digito.
Yo lo defino de la siguiente forma:
TYPE
Agenda = POINTER TO UnaAgenda
UnaAgenda = RECORD
info: InfoContacto;
digito: CHAR;
sighermano, hijo: Agenda:
END;
Creo que al definirlo de esta forma, estoy haciendo un uso ineficiente de la memoria, por tanto los argumentos que expreso anteriormente se caen por este motivo, y entonces sería necesario poner algún CASE...
Saludos.
Diego
Re: Segundo Parcial julio 2011 - ejercicio 1.a
viendo la solucion logre entender creo, en la letra dice "la raiz no tiene info", sin embargo, sino la entendi mal la sol, no hay exactamente una raiz, osea, la raiz seria el primer hijo, ya con sus correspondientes hermanos, aunquqe capaz le pifie a la idea