/* 
 * Imlementação de pilha utilizando listas ligadas.
 */

#ifndef PILHA_LIGADA
#define PILHA_LIGADA

typedef int elem_t; /* Tipo do elemento */

typedef struct No_pilha {
  elem_t v;
  struct No_pilha* prox;
} No_pilha;

typedef struct No_pilha* Pilha; 

void cria_pilha(Pilha* pilha);

int pilha_vazia(Pilha* pilha);
	  
void insere_pilha(Pilha* pilha, elem_t elem);

elem_t remove_pilha(Pilha* pilha);

void libera_pilha(Pilha* pilha);

#endif