Código
#include <stdio.h> #include<stdlib.h> typedef struct nodo_s { char dato; struct nodo_s *siguiente; } nodo_t; typedef nodo_t *ptrNodo; typedef nodo_t *ptrPila; void push (ptrPila *pila, char x) { ptrNodo nodo; nodo = (ptrNodo)malloc(sizeof(nodo_t)); if (nodo !=NULL) { nodo->dato = x; nodo->siguiente =*pila; *pila=nodo; } } char pop(ptrPila *pila) { ptrNodo nodo; char x; nodo =*pila; x = (*pila)->dato; *pila = (*pila)->siguiente; free(nodo); return x; } int pila_vacia(ptrPila *pila) { return(*pila == NULL ? 1:0); } void nodos_pila(ptrNodo nodo) { if(nodo==NULL) printf("la pila está vacia\n"); else { while (nodo !=NULL) { printf("%c\n",nodo->dato); nodo = nodo->siguiente; } printf("\n"); } }