Foro: Dudas y Consultas

TP5 -TDA PILA

TP5 -TDA PILA

de Fernando Rubén Soliz -
Número de respuestas: 1

Buenas tardes profe. Tengo una consulta con relación al punto 11. Las primeras consignas las resolví de tal manera, el punto c) me imagino que debemos volcar toda la lista en una pila y a partir de eso comparar sus elementos respetando el propio concepto?. Y por último, no entiendo la consigna de "¿Cómo se modifica la definición de datos si la pila se implementa con listas enlazadas?". Es decir, no estamos ya trabajando en el punto con listas enlazadas?

void mostrar_l(tlista lista) {
tpila p;
pnodo aux;
iniciar_pila(p);
while (lista.primer!=NULL) {//lista.contador==0
aux=quitar_inicio(lista);
agregar_pila(p,aux->dato); //la pila es de punteros, por lo que debe guardar es la dirección (aux) a un nodo no un dato simple
}
while (!pila_vacia(p)) {
cout << quitar_pila(p) << endl;
}
}

void invertir_l(tlista &lista) {
tpila p;
pnodo aux;
iniciar_pila(p);
while (lista.primer!=NULL) {//lista.contador==0
aux=quitar_inicio(lista);
agregar_pila(p,aux->dato);//aquí deberías mandar aux como dato ya que es el puntero
}
while (!pila_vacia(p)) {
crear_nodo(aux,quitar_pila(p)); ///como son punteros a nodos sólo necesitarías el agregar_final(lista, aux);
agregar_final(lista,aux);
}
}

¿Cómo se modifica la definición de datos si la pila se implementa con listas enlazadas?". Es decir, no estamos ya trabajando en el punto con listas enlazadas?

Respecto a esta pregunta ten presente que tienes por un lado la lista, luego usas la pila que es un arreglo de punteros (que no estás respetando) por lo que son dos estructuras distintas que usan el mismo tipo de dato. en el cambio que se te pide es que reemplaces la pila implementada por arreglo y que uses una pila implementada por listas, es decir tendrías tu lista original y un tpila que sería basada en listas también con una nueva definición de tpila. Espero se encienda

(Editado por Verónica Torres - envío original sábado, 23 de septiembre de 2023, 18:48)