#include #include //#include /* chao con esto (por ahojra) typedef int Posicion; typedef int TipoDato; struct Pila{ Posicion Tope; struct Dato{ TipoDato d; Dato *next; }; } // Solo por un uso mas didactico, Pila y Nodo son identicos, usandose indistintamente // cuando se les requieran :P struct Nodo{ Posicion Tope; struct Dato{ TipoDato d; Dato *next; }; } */ typedef int TipoDato; struct TipoNodo{ TipoDato Dato; TipoNodo *next; }; typedef TipoNodo *Pila; typedef TipoNodo *Nodo; /* Crea el primer elemento de la Pila, asigna NULL al puntero next y la ctm*/ bool CrearPila(Pila *p){ p=(Pila)malloc(sizeof(struct TipoNodo)); if(p==NULL) return false; else{ p->next=NULL; return true; } } // Suponiendo que cuando se elimina el ultimo elemento de la Pila, el puntero // cabeza quede apuntando a NULL bool PilaVacia(Pila p){ if(p==NULL) return true; else return false; } TipoDato Tope(Pila p){ Tipo Dato Resultado; if(PilaVacia(p)==false){ Resultado=p->Dato return Resultado; } int main(void){ struct Pila *p=NULL; return 0; }