#include #include #define MaxTamaPila 100 typedef struct { TipoDato listapila[MaxTamaPila]; int cima; }Pila; /* Operaciones sobre la Pila */ void CrearPila(Pila* P); void Insertar(Pila* P,const TipoDato elemento); TipoDato Quitar(Pila *P); void LimpiarPila(Pila* P); void Pop(Pila* P, TipoDato elemento); /* Operacion de acceso a Pila */ TipoDato Cima(Pila P); /* verificacion estado de la Pila */ int PilaVacia(Pila P); int PilaLlena(Pila P); /* Funciones */ void CrearPila(Pila* P) { P -> cima = -1; } void Insertar(Pila* P,const TipoDato elemento) { if (P->cima == MaxTamaPila-1) { puts("Desbordamiento pila"); exit (1); } P->cima++; P->listapila[P->cima] = elemento; } void Pop(Pila* P,TipoDato elemento) { Insertar(P, elemento); } TipoDato Quitar(Pila *P) { TipoDato aux; if (P->cima == -1) { puts("Se intenta sacar un elemento en pila vacía"); exit (1); } aux = P->listapila[P->cima]; P->cima--; return aux; } TipoDato Cima(Pila P) { TipoDato aux; if (PilaVacia(P)) { puts("Se intenta sacar un elemento en pila vacía"); exit (1); } aux = P.listapila[P.cima]; return aux; } void LimpiarPila(Pila* P) { P->cima = -1; } int PilaVacia(Pila P) { return P.cima == -1; } int PilaLlena(Pila P) { return P.cima == MaxTamaPila-1; }