/* * Imlementação de pilha utilizando listas ligadas. */ #include #include #include "pilha_ligada.h" void cria_pilha(Pilha* pilha) { *pilha = NULL; } int pilha_vazia(Pilha* pilha) { return *pilha == NULL; } void insere_pilha(Pilha* pilha, elem_t elem) { No_pilha* n = (No_pilha*) malloc (sizeof(No_pilha)); n->v = elem; n->prox = *pilha; *pilha = n; } elem_t remove_pilha(Pilha* pilha) { elem_t r; No_pilha *n; if (pilha_vazia(pilha)) { printf("Erro: pilha vazia!\n"); exit(0); } n = *pilha; r = n->v; *pilha = n->prox; free(n); return r; } void libera_pilha(Pilha* pilha) { /* Liberar toda a lista */ }