#include #include #include "pilas.h" void crearPila(Pila P) { P->siguiente = NULL; } int apilar(int X, Pila P) { PNodo NodoTemp; NodoTemp = (PNodo) malloc(sizeof(Nodo)); if (NodoTemp == NULL){ printf("Error de asignación: No hay espacio"); return 1; } NodoTemp->dato = X; NodoTemp->siguiente = P->siguiente; P->siguiente = NodoTemp; return 0; } void imprimirPila(Pila P) { PNodo N; N = P->siguiente; while (N != NULL) { printf("%d ",N->dato); N = N -> siguiente; } printf("\n"); } int esVacia(Pila P) { return(P->siguiente == NULL); } void desapilar(Pila P) { PNodo Primero; if (esVacia(P)) printf("Pila Vacía\n"); else { Primero = P->siguiente; P->siguiente = P->siguiente->siguiente; free(Primero); } } int cima(Pila P) { if(!esVacia(P)) return P->siguiente->dato; printf("Pila vacia\n"); return 0; } void borrarPila(Pila P) { if (P == NULL) printf("Error: primero hay que crear la pila\n"); else while(!esVacia(P)) desapilar(P); }