Aula03 Filas

385 visualizações

Publicada em

Trabalho apresentado na disciplina de docência no ensino superior - PPGCC - IFCE

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
385
No SlideShare
0
A partir de incorporações
0
Número de incorporações
122
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula03 Filas

  1. 1. MINICURSO DE ESTRUTURA DE DADOS Aula 03 – Filas e seus algoritmos
  2. 2. CONTEÚDO DA AULA Conceitos • Filas • Enqueue • Dequeue Algoritmos Exercícios •Operações com pilhas
  3. 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. 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. 5. 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 )
  6. 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. 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. 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. 9. 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
  10. 10. DUVIDAS? Aula 03 – FILAS

×