/* * Esqueleto para implementações do tipo abstrato de dados deque. */ #ifndef ESQUELETO_DEQUE #define ESQUELETO_DEQUE typedef int elem_t; /* Tipo do elemento */ typedef void* Deque; /* Tipo do deque (a ser redefinido) */ /* Inicializa um deque */ void cria_deque(Deque* deque); /* Verifica se o deque está vazio ou não */ int deque_vazio(Deque* deque); /* Insere um elemento no início do deque */ void insere_inicio_deque(Deque* p_deque, elem_t elem); /* Insere um elemento no final do deque */ void insere_fim_deque(Deque* p_deque, elem_t elem); /* Remove o elemento que está no início do deque. Retorna 0 caso o deque esteja vazio */ int remove_inicio_deque(Deque* p_deque, elem_t *p_elem); /* Remove o elemento que está no início do deque. Retorna 0 caso o deque esteja vazio */ int remove_fim_deque(Deque* p_deque, elem_t *p_elem); /* Remove todos os nós do deque */ void libera_deque(Deque* p_deque); #endif