lista

255 palavras 2 páginas
/*Fila com vetor dinamico */
#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 ];

Relacionados

  • lista
    581 palavras | 3 páginas
  • Lista
    475 palavras | 2 páginas
  • lista
    369 palavras | 2 páginas
  • lista
    4311 palavras | 18 páginas
  • listas
    2876 palavras | 12 páginas
  • listas
    465 palavras | 2 páginas
  • Listas
    4239 palavras | 17 páginas
  • Lista
    666 palavras | 3 páginas
  • LISTA
    558 palavras | 3 páginas
  • lista
    1367 palavras | 6 páginas