#include "filas.h" Fila *Fcria(void) { return Lcria(); } void Fdestroi(Fila *f) { Ldestroi(f); } Fila *Fesvazia(Fila *f) { return Lesvazia(f); } unsigned long Fquantos(Fila *f) { return Ltamanho(f); } Fila *Fpoe(Fila *f, void *d) { return LinsereFim(f, d); } void *Ftira(Fila *f) { return LretiraInicio(f); } #ifdef TESTE #include <stdio.h> #include <stdlib.h> int main(void) { Fila *f; int val, *pval; f = Fcria(); do { printf("Valor a inserir (0 para sair, negativo para retirar): "); if(scanf("%d", &val) != 1) return EXIT_FAILURE; if(val < 0) { printf("Retirando: "); if((pval = Ftira(f)) == 0) puts("fila vazia!"); else { printf("Retirei %d.\n", *pval); free(pval); } } else if(val > 0) { printf("Inserindo: "); if((pval = malloc(sizeof(int))) == 0) return EXIT_FAILURE; *pval = val; if(Fpoe(f, pval) == 0) puts("pilha cheia!"); else printf("Inseri %d.\n", val); } } while(val != 0); if(Fquantos(f) != 0) { printf("Retirando:"); while((pval = Ftira(f)) != 0) { printf(" %d", *pval); free(pval); } putchar('\n'); } Fdestroi(f); return EXIT_SUCCESS; } #endif