lista
#include "Fila.h" typedef struct fila{ int *vet; int posicaoIni;/*posicao inicial*/ int posicaoFin;/*posicao final*/ int qtd;/*quantidade de elementos inseridos*/ int tam;/*tamanho máximo da fila*/
}Fila;
///////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////// Funções para inicializar as filas ////////////////////////////////////
Fila * filaCria(int tam){ Fila * f;
/* Aloca uma Fila (sem reservar espacos no vetor) */ f = (Fila*) malloc ( sizeof( Fila ) );
if(!f){ printf("nao conseguiu alocar f /fila!\n"); return -1;//NULL; //nao conseguiu alocar f } /* Aloca na memoria espaco para tam inteiros */ f->vet = (int*) malloc ( sizeof( int ) * tam );
if(!f->vet){ printf("nao conseguiu alocar o vetor de f /fila!\n"); return -1;//NULL; //nao conseguiu alocar o vetor de f }
f->posicaoIni = 0; f->qtd = 0; f->posicaoFin = 0; f->tam = tam;
return f;/* sucesso */
}
///////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////// Funções para inserir elementos nas filas /////////////////////////////////
int filaInsere(Fila *f, int num){ if(f->qtd == f->tam){ return 0; //fila cheia }
f->vet[ f->posicaoFin % f->tam ] = num; //torna valor do vetor[i]=i+1 //exemplo. vet[0]=1, vet[1]=2. f->posicaoFin++; f->qtd ++;
return 1;
}
///////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////// Funções para atender elementos das filas /////////////////////////////////
int filaRemove(Fila *f, int num){ if(f->qtd == 0){ return 0;//fila vazia }
if(f->posicaoIni == f->tam){ f->posicaoIni = 0; }
num = f->vet[ f->posicaoIni ];