#include <stdio.h>
#include <stdlib.h>
#include "pilasListas.h"
#include "glist.h"
typedef GList Pila;
typedef FuncionDestructora destroy;
Pila pila_crear(){
return glist_crear();
}
void pila_destruir(Pila pila, FuncionDestructora destroy){
glist_destruir(pila, destroy);
}
int pila_es_vacia(Pila pila){
return glist_vacia(pila);
}
int pila_tope(Pila pila){
GNode* nodoAux = pila;
for(;nodoAux->next!=NULL; nodoAux=nodoAux->next);
return nodoAux->data;
}
void pila_apilar(Pila pila, int dato){
glist_agregar_final(pila, dato);
}
void pila_desapilar(Pila pila, FuncionDestructora destroy){
GNode* nodoAux = pila;
for(;nodoAux->next->next!=NULL; nodoAux=nodoAux->next);
GNode* nodoAux2 = nodoAux->next;
nodoAux->next = NULL;
destroy(nodoAux2->data);
free(nodoAux2);
}
void pila_imprimir(Pila pila, FuncionVisitante visit){
glist_recorrer(pila, visit);
}
//Escriba una función que utilice una pila para revertir el orden de una lista simplemente enlazada.
void revertirSList(SList lista){
SNodo* nodoAux = lista;
}