MINICURSO DE 
ESTRUTURA DE DADOS 
Aula 03 – Filas e seus 
algoritmos
CONTEÚDO DA AULA 
Conceitos • Filas 
• Enqueue 
• Dequeue Algoritmos 
Exercícios •Operações com pilhas
CONCEITOS 
Filas 
• A estrutura de dados fila é também uma variação do deque. 
• A fila implementa a seguinte norma: O primeiro a entrar é o 
primeiro a sair, ou FIFO (first in first out) 
• A fila é uma lista em que todas as inserções ocorrem em 
uma das extremidades e todas as remoções ocorrem na 
outra 
• INICIO: extremidade onde ocorrem as remoções 
• FIM: extremidade onde ocorrem as inserções
CARACTERÍSTICAS DAS PILHAS 
Formas de 
armazenamento 
• Em vetores 
• Ponteiros  um ponteiro indica o início da fila 
e outro indica o final da fila 
Operações 
básicas 
• Inserir um elemento(enfileirar) – ENQUEUE(Q,x) 
• Remover um elemento(desnfileirar) – 
DEQUEUE(Q) 
Operações 
inválidas 
• Inserção em fila cheia – OVERFLOW 
• Remoção em fila vazia – UNDERFLOW
EXEMPLO DE OPERAÇÃO EM UMA 
FILA Q 
Fila vazia 
ENQUEUE(Q,A) 
- - - - - - - - - A 
5 4 3 2 
1 
i = f = 0 
5 4 3 2 
1 
i = f = 1 
ENQUEUE(Q,B) DEQUEUE(Q) 
- - - B A - - - B - 
5 4 3 2 
1 
5 4 3 2 
1 
i = 1; f = 2 i = f = 2 
A figura acima ilustra algumas operações na fila Q, utilizando os algoritmos e os 
ponteiros i (início da fila) e f (fim da fila )
CONTINUAÇÃO DO EXEMPLO 
ENQUEUE(Q,C) 
DEQUEUE(Q) 
- - C B - - - C - - 
5 4 3 2 
1 
i = 2; f = 3 
5 4 3 2 
1 
i = f = 1; 
DEQUEUE(Q) DEQUEUE(Q) 
- - - - - - - - - - 
5 4 3 2 
1 
5 4 3 2 
1 
i = 1; f = 2 i = f = 2 
Observe que na última operação ocorre uma erro de UNDERFLOW, onde a fila já se 
encontra vazia e mesmo assim é dado o comando de desinfileirar.
O ALGORITMO ENQUEUE(Q,X) 
•O algoritmo ENQUEUE(Q,x) realiza o enfileiramento, ou seja, ele insere 
um elemento no final da fila. Conceito 
•ENQUEUE(Q,x) 
• Q[fim[Q]  x 
• if fim[Q] = comprimento[Q] 
• then fim[Q]  1 
• else fim[Q]  fim[Q + 1] 
Código
O ALGORITMO DEQUEUE(Q) 
•O algoritmo DEQUEUE(Q) realiza o desinfileiramento, ou seja, ele remove um elemento 
no início da fila. Conceito 
•DEQUEUE(Q) 
•X  Q[inicio[Q] 
• if inicio[Q] = comprimento[Q] 
• then inicio[Q]  1 
• else inicio[Q]  inicio[Q + 1] 
•Return x 
Código
EXERCÍCIO 
1. Utilizando o modelo de fila exemplo passado, ilustre o resultado 
de cada operação na sequência ENQUEUE(Q,4), ENQUEUE(Q,1), 
ENQUEUE(Q,3), DEQUEUE(Q), ENQUEUE(Q,8), DEQUEUE(Q), sobre uma 
fila Q inicialmente vazia armazenada num arranjo[1 .. 5]. 
2. Reescreva dos algoritmos ENQUEUE(Q,x) e DEQUEUE(Q) de modo 
que seja feita a verificação de Overflow e Underflow
DUVIDAS? Aula 03 – FILAS

Aula03 Filas

  • 1.
    MINICURSO DE ESTRUTURADE DADOS Aula 03 – Filas e seus algoritmos
  • 2.
    CONTEÚDO DA AULA Conceitos • Filas • Enqueue • Dequeue Algoritmos Exercícios •Operações com pilhas
  • 3.
    CONCEITOS Filas •A estrutura de dados fila é também uma variação do deque. • A fila implementa a seguinte norma: O primeiro a entrar é o primeiro a sair, ou FIFO (first in first out) • A fila é uma lista em que todas as inserções ocorrem em uma das extremidades e todas as remoções ocorrem na outra • INICIO: extremidade onde ocorrem as remoções • FIM: extremidade onde ocorrem as inserções
  • 4.
    CARACTERÍSTICAS DAS PILHAS Formas de armazenamento • Em vetores • Ponteiros  um ponteiro indica o início da fila e outro indica o final da fila Operações básicas • Inserir um elemento(enfileirar) – ENQUEUE(Q,x) • Remover um elemento(desnfileirar) – DEQUEUE(Q) Operações inválidas • Inserção em fila cheia – OVERFLOW • Remoção em fila vazia – UNDERFLOW
  • 5.
    EXEMPLO DE OPERAÇÃOEM UMA FILA Q Fila vazia ENQUEUE(Q,A) - - - - - - - - - A 5 4 3 2 1 i = f = 0 5 4 3 2 1 i = f = 1 ENQUEUE(Q,B) DEQUEUE(Q) - - - B A - - - B - 5 4 3 2 1 5 4 3 2 1 i = 1; f = 2 i = f = 2 A figura acima ilustra algumas operações na fila Q, utilizando os algoritmos e os ponteiros i (início da fila) e f (fim da fila )
  • 6.
    CONTINUAÇÃO DO EXEMPLO ENQUEUE(Q,C) DEQUEUE(Q) - - C B - - - C - - 5 4 3 2 1 i = 2; f = 3 5 4 3 2 1 i = f = 1; DEQUEUE(Q) DEQUEUE(Q) - - - - - - - - - - 5 4 3 2 1 5 4 3 2 1 i = 1; f = 2 i = f = 2 Observe que na última operação ocorre uma erro de UNDERFLOW, onde a fila já se encontra vazia e mesmo assim é dado o comando de desinfileirar.
  • 7.
    O ALGORITMO ENQUEUE(Q,X) •O algoritmo ENQUEUE(Q,x) realiza o enfileiramento, ou seja, ele insere um elemento no final da fila. Conceito •ENQUEUE(Q,x) • Q[fim[Q]  x • if fim[Q] = comprimento[Q] • then fim[Q]  1 • else fim[Q]  fim[Q + 1] Código
  • 8.
    O ALGORITMO DEQUEUE(Q) •O algoritmo DEQUEUE(Q) realiza o desinfileiramento, ou seja, ele remove um elemento no início da fila. Conceito •DEQUEUE(Q) •X  Q[inicio[Q] • if inicio[Q] = comprimento[Q] • then inicio[Q]  1 • else inicio[Q]  inicio[Q + 1] •Return x Código
  • 9.
    EXERCÍCIO 1. Utilizandoo modelo de fila exemplo passado, ilustre o resultado de cada operação na sequência ENQUEUE(Q,4), ENQUEUE(Q,1), ENQUEUE(Q,3), DEQUEUE(Q), ENQUEUE(Q,8), DEQUEUE(Q), sobre uma fila Q inicialmente vazia armazenada num arranjo[1 .. 5]. 2. Reescreva dos algoritmos ENQUEUE(Q,x) e DEQUEUE(Q) de modo que seja feita a verificação de Overflow e Underflow
  • 10.