Escolar Documentos
Profissional Documentos
Cultura Documentos
Computação
Estruturas de dados
Filas (Queues)
alexandre.perin@ifsc.edu.br
Lages (SC).
Filas
• Sumário
o Introdução
o Definição
o Operações
o Funcionamento
o Implementação
o Exercícios
2
Filas
• Introdução
o É uma estrutura de dados linear, utilizada em diversos
problemas:
▪ Controle de documentos para impressão
▪ ...
3
Filas
• Definição
o Uma fila ou queue é uma estrutura de dados linear, cujo
acesso se dá através da regra
▪ Primeiro que chega (entra) é o primeiro a ser atendido
(sai): First In First Out (FIFO)
4
Filas
o Operações
• Há duas principais
o Insere( elemento ): insere um elemento na fila
• Há outras complementares
o Número de elementos presentes na fila
o Limpar a fila
o ...
5
Filas
• Funcionamento
o Insere( elemento ) - Insere um elemento na fila
10 20 30 10 20 30
Insere(30)
Depois
Antes
6
Filas
• Funcionamento
o Remove( ) - Remove um elemento da fila
10 20 30 10 20 30
Remove( )
Antes Depois
7
Filas
o Exemplo do funcionamento de uma fila usando alocação
estática de memória (vetor)
• Link:
https://www.cs.usfca.edu/~galles/visualization/QueueArray.html
8
Filas
o Exemplo do funcionamento de uma fila usando alocação
dinâmica de memória (lista ligada ou encadeada)
• Link:
https://www.cs.usfca.edu/~galles/visualization/QueueLL.html
9
Filas
o Implementação
• Através de memória estática (vetor)
▪ É importante observar e controlar os limites da fila (vetor),
de maneira a evitar acessos a posições de memória não
alocadas.
10
Filas
o As filas serão implementadas através de alocação dinâmica
de memória
• Para atender à regra FIFO, as operações de insere e retira
devem ser realizadas em diferentes extremidade da estrutura
11
Filas
o Insere e Retira em pseudocódigo
Método insere(Nodo novoElemento)
Início
Se fila está vazia Então
fila <- novoNodo
Senão
novoNodo.prox <- fila
fila <- novoNodo
Fimse
Fim
13
Filas
o Síntese
• Filas são estruturas de dados lineares e simples, usadas em
diversos problemas
▪ Por isso, algumas linguagens já dispõem desta estrutura
▪ Em Java existe a classe Queue
• Sua regra estabelece que o primeiro a entrar é o primeiro a
sair (FIFO)
• Suas operações básicas são: insere e retira
• Podem ser implementadas
▪ Alocação estática ou por contiguidade (vetor)
▪ Alocação dinâmica de memória (listas encadeadas ou
ligadas)
14