TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Fila Com Compactação Inteligente

Casos: Fila Com Compactação Inteligente. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  18/3/2014  •  767 Palavras (4 Páginas)  •  219 Visualizações

Página 1 de 4

#include <stdio.h>

#include <stdlib.h>

typedef struct

{

int *vetFila;

int inicio; /* indexa o início da Fila */

int fim; /*indexa o final da Fila */

int tamVetor; /* numero de elementos do vetor*/

int tamFila; /* testes de vazia/cheia */

} Fila;

void enfilera(Fila *fi, int novo)

{ //queue

if (fi->tamFila == fi->tamVetor) {//nao há espaço

printf("Fila cheia\n");

return;

}

if (fi->fim==fi->tamVetor) //usa o aspecto circular

fi->fim=0;

fi->vetFila[fi->fim]=novo;

fi->fim++;

fi->tamFila++;

}

int retira(Fila *fi){//sempre do inicio

int n;

n=fi->vetFila[fi->inicio];

//se é o ultimo elemento do vetor

if(fi->inicio==fi->tamVetor-1)

fi->inicio=0;

else

(fi->inicio)++;

(fi->tamFila)--;

return n;

}

int fila_vazia(Fila *f){

return (f->tamFila==0);

}

Fila *cria_fila(int t)

{

Fila *f=(Fila*)malloc(sizeof(Fila));

f->inicio=0;

f->fim=0;

f->tamVetor=t;

f->tamFila=0;

f->vetFila=(int*)malloc(t*sizeof(int));

return f;

}

void mostrafila(Fila *f){

if (f->inicio < f->fim){//nao circulou

for (int i=f->inicio;i< f->fim;i++)

printf ("%d\t",f->vetFila[i]);

printf("\n");

}

else {//circulou

for(int i = f->inicio;i<f->tamVetor;i++)

printf ("%d\t",f->vetFila[i]);

for(int i=0;i< f->fim;i++)

printf ("%d\t",f->vetFila[i]);

...

Baixar como (para membros premium)  txt (2.6 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com