Professional Documents
Culture Documents
Al definir el tipo pila como un puntero al registro que representa a la pila, solo se hace una copia de este
puntero y no del registro completo.
12.- Tiene algn sentido representar una pila con una lista doblemente enlazada? Por qu?
No, ya que una lista doblemente enlazada requiere un doble puntero, uno para el elemento siguiente y
otro para el anterior. Esto es un gasto innecesario ya que en la pila solo insertamos o eliminamos por el
Tope. Por lo tanto, con un slo puntero es suficiente.
Adems en una pila no tenemos el concepto de posicin, ya que solo podemos insertar por la cima y
eliminar por la misma, mientras que en la lista podemos hacer una insercin eliminacin en cualquier
posicin mientras que , como dijimos antes, en la pila slo podemos por el tope, ya que es una condicin
necesaria del TAD pila.
13.- Y en una representacin pseudoesttica?
Ventajas: Relativo a la pila esttica, la pila pseudoesttica nos permite fijar distintos tamaos para las pilas
de la aplicacin en tiempo de ejecucin por lo que un tamao inicial no determinar el tamao de todas
las pilas. Ocupa menos espacio que la implementacin del TAD pila mediante celdas enlazadas ya que no
requiere un puntero por elemento.
Inconvenientes: Tamao constante durante la vida de cada pila, tamao que tenemos que ir controlando
para no sobrepasarlo.
14.- Cundo utilizaremos la representacin circular del TAD pila?
Tal y como se define el TAD pila, una pila es una secuencia de elementos de un tipo determinado, en la
cual se puede aadir y eliminar elementos slo por uno de sus extremos llamado tope o cima, por lo tanto,
carecera de sentido utilizar un puntero que se utilizara para apuntar a la base de la pila (primer elemento
que se introducira en ella). En cualquier caso, ese TAD lo utilizaramos para obtener el elemento base de la
pila, pero por otra parte, tendramos que cambiar operaciones del TAD pila como la funcin FIN(habra que
reimplementarla)..
15.- Para qu se utiliza el nodo cabecera en el TAD Cola, en su implementacin con celdas
enlazadas? (TRAMPA)
El nodo cabecera no se utiliza en el TAD cola, es innecesario dado que sta surge para resolver un
problema de independencia de la representacin en el TAD lista, cuando definimos la posicin en una lista.
16.-Por qu surge el nodo cabecera en las listas?
Cuando implementamos la lista con celdas enlazadas, se nos plantea un problema de independencia de la
representacin en lo que se referencia a la utilizacin de tipo de dato posicin.
Por ejemplo, en la operacin Insertar del TAD Lista, cuando vamos a insertar en la posicin p, el elemento
que ocupa dicha posicin (si lo hubiera) pasara a ser la posicin p+1 y el nuevo elemento que vamos a
insertar, obviamente, ocupara la posicin p. Ocurre un problema y es que, adems de hacer esta
operacin, la posicin apuntara al elemento que ocupa la posicin p+1 y esto no debe ser as, es decir,
debera de apuntar a la posicin insertada , a la posicin p. Por esta razn, se debe de modificar dicho
puntero para que apunte donde debera de apuntar y se pasara en la cabecera de la funcin como
posicin *p, y no estaramos cumpliendo con la especificacin del TAD lista.Para arreglar este problema,
hacemos que cada elemento de la lista se referencie mediante su nodo anterior, con lo que acarrea el
problema de que, el primer elemento no tenga anterior, luego se crea el nodo cabecera y, en
consecuencia, tambin respetaramos la especificacin del TAD lista.
37.- Ante la posibilidad de que no se verifiquen las precondiciones de una operacin de un TAD, que
decisiones de diseo puede implementar la operacin?
Lo ideal sera que diese un error. Dependiendo de la gravedad que puede derivar el error al resto de la
aplicacin, recomendara que si fuese alto, dara por concluida la continuidad de la aplicacin y terminara
inminentemente con su ejecucin.