/* * Implementação circular com contador. */ #include #include #include "circular.h" void cria_fila(Fila* fila) { fila->i = 0; fila->f = 0; fila->c = 0; } int fila_vazia(Fila* fila) { return (fila->c == 0); } void insere_fila(Fila* fila, elem_t elem) { if (fila->c == MAX_ELEM) { printf("Erro: fila cheia!\n"); exit(0); } fila->c++; fila->f = (fila->f +1) % MAX_ELEM; fila->vet[fila->f] = elem; } elem_t remove_fila(Fila* fila) { if (fila_vazia(fila)) { printf("Erro: fila vazia!\n"); exit(0); } fila->c--; fila->i = (fila->i +1) % MAX_ELEM; return fila->vet[fila->i]; } void libera_fila(Fila* fila) { cria_fila(fila); }