Documente Academic
Documente Profesional
Documente Cultură
Mdulo 12 - Filas
9/8/2005
Referncias
Waldemar Celes, Renato Cerqueira, Jos Lucas Rangel, Introduo a Estruturas de Dados, Editora Campus (2004) Captulo 12 Filas
9/8/2005
Tpicos
Introduo Interface do tipo fila Implementao de fila com vetor Implementao de fila com lista Fila dupla Implementao de fila dupla com lista
9/8/2005
Introduo
Fila
um novo elemento inserido no final da fila e um elemento retirado do incio da fila
fila = o primeiro que entra o primeiro que sai (FIFO) pilha = o ltimo que entra o primeiro que sai (LIFO)
9/8/2005
9/8/2005
funo fila_vazia
informa se a fila est ou no vazia
funo fila_libera
destri a fila, liberando toda a memria usada pela estrutura
9/8/2005 (c) Dept. Informtica - PUC-Rio 6
typedef struct fila Fila; Fila* fila_cria (void); void fila_insere (Fila* f, float v); float fila_retira (Fila* f); int fila_vazia (Fila* f); void fila_libera (Fila* f);
9/8/2005
9/8/2005
1 2.2
2 3.5
3 4.0
ini
fim
3 4.0
fim 9
98 20.0
99 20.8
fim
ini
9/8/2005
10
parmetros da fila:
n ini fim = nmero de elementos na fila = posio do prximo elemento a ser retirado da fila = posio onde ser inserido o prximo elemento
9/8/2005
11
*/ */
9/8/2005
12
14
ini
fim
Info1
Info2
Info3
9/8/2005
15
9/8/2005
16
9/8/2005
17
*/ */ */ */ */
9/8/2005
18
9/8/2005
20
Fila dupla
Fila dupla:
fila na qual possvel:
inserir novos elementos no incio e no fim retirar elementos de ambos os extremos
simula, dentro de uma mesma estrutura, duas filas, com os elementos em ordem inversa uma da outra
9/8/2005
21
funo fila2_vazia
informa se a fila est ou no vazia
funo fila2_libera
destri a fila, liberando toda a memria usada pela estrutura
9/8/2005 (c) Dept. Informtica - PUC-Rio 22
typedef struct fila2 Fila2; Fila2* fila2_cria (void); void fila2_insere_ini (Fila2* f, float v); void fila2_insere_fim (Fila2* f, float v); float fila2_retira_ini (Fila2* f); float fila2_retira_fim (Fila2* f); int fila2_vazia (Fila2* f); void fila2_libera (Fila2* f);
9/8/2005
23
25
Info1
Info2
Info3
9/8/2005
26
Info1
Info2
Info3
9/8/2005
27
9/8/2005
29
9/8/2005
30
9/8/2005
31
9/8/2005
32
9/8/2005
33
9/8/2005
34
9/8/2005
35
Resumo
fila
insere remove insere novo elemento no final da fila remove o elemento do inicio da fila
insere
50
35
22
incio
remove
fim
9/8/2005
37