Você está na página 1de 2

01/04/2017

Filas
Tcnicas de Programao T01 um conjunto ordenado de itens a partir
Prof. Flvio Ferry de Oliveira Moreira, MSc.
do qual se podem eliminar itens numa
extremidade - incio da fila - e no qual
Aula 03
se podem inserir itens na outra
extremidade - final da fila;
Esta estrutura conhecida como FIFO
(First In First Out) Primeiro que entra
o primeiro que sai.

01/04/2017 2013 - DC - UFPI 2

Operaes sobre filas Ilustrando


insert ou enqueue - insere itens numa
fila (ao final);
remove ou dequeue - retira itens de
uma fila (primeiro item);
empty - verifica se a fila est vazia;
size - retorna o tamanho da fila;
front - retorna o prximo item da fila
sem retirar o mesmo da fila.

01/04/2017 2013 - DC - UFPI 3 01/04/2017 2013 - DC - UFPI 4

Fila em C Funes de Fila em C


#include <stdio.h> int vazia(struct node *FILA){
#include <stdlib.h> return tam == 0;
}
int tam;
void inicia(struct node *FILA)
struct node{
{
int num;
FILA->prox = NULL;
struct node *prox; tam=0;
}; }
01/04/2017 2013 - DC - UFPI 5 01/04/2017 2013 - DC - UFPI 6

1
01/04/2017

struct node *aloca() { void insere(struct node *FILA ){


struct node *novo = calloc(1, sizeof(struct struct node *novo=aloca();
node)); novo->prox = NULL;

if(vazia(FILA))
if (novo == NULL){ FILA->prox=novo;
printf("Sem memoria disponivel!\n"); else {
exit(-1); struct node *tmp = FILA->prox;
} else{
printf("Novo elemento: "); while(tmp->prox != NULL)
scanf("%d", &novo->num); tmp = tmp->prox;
return novo; tmp->prox = novo;
} }
} tam++;
}
01/04/2017 2013 - DC - UFPI 7 01/04/2017 2013 - DC - UFPI 8

void exibe(struct node *FILA)


{ int main(){
if(vazia(FILA)){
printf("Fila vazia!\n\n"); struct node *FILA;
return ;
} inicia(FILA);
struct node *tmp;
tmp = FILA->prox;
printf("Fila :");
while( tmp != NULL){
insere(FILA);
printf("%5d", tmp->num);
tmp = tmp->prox;
insere(FILA);
}
printf("\n "); insere(FILA);
int count;
for(count=0 ; count < tam ; count++)
printf(" ^ ");
printf("\nOrdem:");
for(count=0 ; count < tam ; count++)
exibe(FILA);
printf("%5d", count+1);
return 0;
printf("\n\n");
}
}

01/04/2017 2013 - DC - UFPI 9 01/04/2017 2013 - DC - UFPI 10

O Exemplo completo FIM


Veja tambm:

programa_fila_01.c

No precisa estudar filas circulares.

01/04/2017 2013 - DC - UFPI 11 01/04/2017 2013 - DC - UFPI 12

Você também pode gostar