/* 
 * Implementação de pilha utilizando vetor.
 */

#include <stdlib.h>
#include <stdio.h>
#include "pilha_vetor.h"

void cria_pilha(Pilha* pilha) {
  pilha->topo = -1;
}

int pilha_vazia(Pilha* pilha) {
  return (pilha->topo == -1); 
}
	  
void insere_pilha(Pilha* pilha, elem_t elem) {
  if (pilha->topo == MAX_ELEM - 1 ) {
    printf("Erro: pilha cheia!\n");
    exit(0);
  }  
  pilha->topo++;
  pilha->vet[pilha->topo] = elem;
}

elem_t remove_pilha(Pilha* pilha) {
  if (pilha_vazia(pilha)) {
    printf("Erro: pilha vazia!\n");
    exit(0);
  }
  return pilha->vet[pilha->topo--];
}

void libera_pilha(Pilha* pilha) {
  pilha->topo = -1;
}