ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados...

78
E STRUTURA DE D ADOS Prof. Dr. Daniel Caetano 2012 - 2 FILAS SEQUENCIAIS

Transcript of ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados...

Page 1: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

ESTRUTURA DE DADOS

Prof. Dr. Daniel Caetano

2012 - 2

FILAS SEQUENCIAIS

Page 2: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Objetivos

• Compreender o que é uma estrutura em fila

• Compreender sua aplicação

• Capacitar para implementar filas

• Atividade Estruturada!

Page 3: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Material de Estudo

Material Acesso ao Material

Apresentação http://www.caetano.eng.br/ (Aula 7)

Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142

Biblioteca Virtual Estruturas de Dados – -?

Page 4: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

RECORDANDO...

Page 5: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Recordando...

• Listas

– Ordenadas e não ordenadas

• Listas: acrescento...

– Não ordenada: no fim

– Ordenada: no lugar correto

• Listas: removo...

– De qualquer lugar

Page 6: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Recordando...

• Pilhas

• Acrescentamos...

– No fim

• Removemos...

– Do fim

• E as filas?

Page 7: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

ORDEM DE ENTRADA X ORDEM DE SAÍDA

Page 8: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Ordem de Entrada x Saída

• É comum: ordem de entrada → saída

• Exemplo: fila do banco

Page 9: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Ordem de Entrada x Saída

• É comum: ordem de entrada → saída

• Exemplo: fila do banco

Page 10: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Ordem de Entrada x Saída

• É comum: ordem de entrada → saída

• Exemplo: fila do banco

Page 11: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Ordem de Entrada x Saída

• É comum: ordem de entrada → saída

• Exemplo: fila do banco

Page 12: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Ordem de Entrada x Saída

• É comum: ordem de entrada → saída

• Exemplo: fila do banco

Page 13: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Ordem de Entrada x Saída

• É comum: ordem de entrada → saída

• Exemplo: fila do banco Atendimento

Page 14: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Ordem de Entrada x Saída

• É comum: ordem de entrada → saída

• Exemplo: fila do banco Atendimento

Page 15: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Ordem de Entrada x Saída

• É comum: ordem de entrada → saída

• Exemplo: fila do banco Atendimento

Page 16: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Ordem de Entrada x Saída

• É comum: ordem de entrada → saída

• Exemplo: fila do banco Atendimento

Page 17: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

FILAS DE DADOS

Page 18: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Filas

• Estrutura de dados Fila: Lista FIFO

– FIFO: First In, First Out

– Primeiro a entrar... É o primeiro a sair

• Inserir: sempre no fim da lista (fim da fila)

• Remover: sempre do início da lista (início da lista)

• Isso é útil em software?

– Sim, em muitos casos!

Page 19: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Filas • Fila de Impressão

• Fila de Processos

Page 20: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Filas

• Fila de Aviões para Pouso ou Decolagem

Page 21: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Filas

• Buffer para gravação de dados

– DVD

– Audio

– Vídeo

• Etc...

Page 22: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

EXEMPLO DE FUNCIONAMENTO DE FILA

Page 23: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Filas

• Imagine uma fila de até 10 posições

• Imaginemos que chegou o pedido 1537

0 1 2 3 4 5 6 7 8 9

Page 24: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Filas

• Imagine uma fila de até 10 posições

• Imaginemos que chegou o pedido 1537

• Agora chegou o pedido 1635

0 1 2 3 4 5 6 7 8 9

1537

Page 25: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Filas

• Imagine uma fila de até 10 posições

• Imaginemos que chegou o pedido 1537

• Agora chegou o pedido 1635

• Agora chegou o pedido 1756

0 1 2 3 4 5 6 7 8 9

1537 1635

Page 26: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Filas

• Imagine uma fila de até 10 posições

• Imaginemos que chegou o pedido 1537

• Agora chegou o pedido 1635

• Agora chegou o pedido 1756

• Agora foi atendido um pedido...

0 1 2 3 4 5 6 7 8 9

1537 1635 1756

Page 27: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Filas

• Imagine uma fila de até 10 posições

• Imaginemos que chegou o pedido 1537

• Agora chegou o pedido 1635

• Agora chegou o pedido 1756

• Agora foi atendido um pedido...

• Agora chegou o pedido 2001

0 1 2 3 4 5 6 7 8 9

1635 1756

Page 28: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Filas

• Imagine uma fila de até 10 posições

• Imaginemos que chegou o pedido 1537

• Agora chegou o pedido 1635

• Agora chegou o pedido 1756

• Agora foi atendido um pedido...

• Agora chegou o pedido 2001

• Agora foi atendido outro pedido...

0 1 2 3 4 5 6 7 8 9

1635 1756 2001

Page 29: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Filas

• Imagine uma fila de até 10 posições

• Imaginemos que chegou o pedido 1537

• Agora chegou o pedido 1635

• Agora chegou o pedido 1756

• Agora foi atendido um pedido...

• Agora chegou o pedido 2001

• Agora foi atendido outro pedido...

0 1 2 3 4 5 6 7 8 9

1756 2001

Page 30: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Filas

• Imagine uma fila de até 10 posições

• Onde inserimos um novo elemento?

– Fim da fila!

• De onde recolhemos os que serão atendidos?

– Do início da fila

• Precisamos de quantos índices de controle?

– Dois! Um para o início e outro para o fim!

0 1 2 3 4 5 6 7 8 9

1756 2001

Page 31: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

IMPLEMENTANDO UMA FILA

Page 32: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Fila: Essencialmente uma lista

fila:

inicio: ??

fim: ??

• Operações:

– Inicializar

– Enfileirar

– Desenfileirar

0 1 2 3 4 5 6 7 8 9

? ? ? ? ? ? ? ? ? ?

Page 33: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Inicializar Fila

fila:

inicio: ??

fim: ??

• Essencialmente, marcar o início e o fim

• Onde é o início?

– Onde começa uma fila?

0 1 2 3 4 5 6 7 8 9

? ? ? ? ? ? ? ? ? ?

Page 34: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Inicializar Fila

fila:

inicio: 0

fim: ??

• Essencialmente, marcar o início e o fim

• Onde é o início?

– Onde começa uma fila?

0 1 2 3 4 5 6 7 8 9

? ? ? ? ? ? ? ? ? ?

Page 35: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Inicializar Fila

fila:

inicio: 0

fim: ??

• Essencialmente, marcar o início e o fim

• Onde é o fim?

– Qual é o elemento que deveria ser lido?

0 1 2 3 4 5 6 7 8 9

? ? ? ? ? ? ? ? ? ?

Page 36: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Inicializar Fila

fila:

inicio: 0

fim: -1

• Essencialmente, marcar o início e o fim

• Fim < Início: lista vazia

• Vamos implementar?

0 1 2 3 4 5 6 7 8 9

? ? ? ? ? ? ? ? ? ?

Page 37: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: -1

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 100?

0 1 2 3 4 5 6 7 8 9

? ? ? ? ? ? ? ? ? ?

Page 38: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: -1

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 100?

0 1 2 3 4 5 6 7 8 9

? ? ? ? ? ? ? ? ? ?

Page 39: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: -1

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 100?

0 1 2 3 4 5 6 7 8 9

? ? ? ? ? ? ? ? ? ?

Page 40: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: 0

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 100?

0 1 2 3 4 5 6 7 8 9

? ? ? ? ? ? ? ? ? ?

Page 41: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: 0

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 100?

0 1 2 3 4 5 6 7 8 9

100 ? ? ? ? ? ? ? ? ?

Page 42: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: 0

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 66?

0 1 2 3 4 5 6 7 8 9

100 ? ? ? ? ? ? ? ? ?

Page 43: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: 0

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 66?

0 1 2 3 4 5 6 7 8 9

100 ? ? ? ? ? ? ? ? ?

Page 44: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: 0

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 66?

0 1 2 3 4 5 6 7 8 9

100 ? ? ? ? ? ? ? ? ?

Page 45: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: 1

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 66?

0 1 2 3 4 5 6 7 8 9

100 ? ? ? ? ? ? ? ? ?

Page 46: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: 1

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 66?

0 1 2 3 4 5 6 7 8 9

100 66 ? ? ? ? ? ? ? ?

Page 47: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: 1

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 75?

0 1 2 3 4 5 6 7 8 9

100 66 ? ? ? ? ? ? ? ?

Page 48: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: 1

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 75?

0 1 2 3 4 5 6 7 8 9

100 66 ? ? ? ? ? ? ? ?

Page 49: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: 1

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 75?

0 1 2 3 4 5 6 7 8 9

100 66 ? ? ? ? ? ? ? ?

Page 50: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: 2

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 75?

0 1 2 3 4 5 6 7 8 9

100 66 ? ? ? ? ? ? ? ?

Page 51: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: 2

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 75?

0 1 2 3 4 5 6 7 8 9

100 66 75 ? ? ? ? ? ? ?

Page 52: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Enfileirar

fila:

inicio: 0

fim: 2

• Se fim < n-1

– fim = fim + 1

– Coloca novo valor no fim

• Vamos implementar?

0 1 2 3 4 5 6 7 8 9

100 66 75 ? ? ? ? ? ? ?

Page 53: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Desenfileirar

fila:

inicio: 0

fim: 7

• Se inicio <= fim

– Retira valor do início

– inicio = inicio + 1

• Exemplo: vamos ler o primeiro número?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 ? ?

Page 54: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Desenfileirar

fila:

inicio: 0

fim: 7

• Se inicio <= fim

– Retira valor do início

– inicio = inicio + 1

• Exemplo: vamos ler o primeiro número?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 ? ?

Page 55: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Desenfileirar

fila:

inicio: 0

fim: 7

• Se inicio <= fim

– Retira valor do início

– inicio = inicio + 1

• Exemplo: vamos ler o primeiro número?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 ? ?

Page 56: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Desenfileirar

fila:

inicio: 0

fim: 7

• Se inicio <= fim

– Retira valor do início

– inicio = inicio + 1

• Exemplo: vamos ler o primeiro número?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 ? ?

100

Page 57: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Desenfileirar

fila:

inicio: 0

fim: 7

• Se inicio <= fim

– Retira valor do início

– inicio = inicio + 1

• Exemplo: vamos ler o primeiro número?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 ? ?

Page 58: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Desenfileirar

fila:

inicio: 1

fim: 7

• Se inicio <= fim

– Retira valor do início

– inicio = inicio + 1

• Exemplo: vamos ler o primeiro número?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 ? ?

Page 59: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Desenfileirar

fila:

inicio: 1

fim: 7

• Se inicio <= fim

– Retira valor do início

– inicio = inicio + 1

• Exemplo: vamos ler o próximo número?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 ? ?

Page 60: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Desenfileirar

fila:

inicio: 1

fim: 7

• Se inicio <= fim

– Retira valor do início

– inicio = inicio + 1

• Exemplo: vamos ler o primeiro número?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 ? ?

Page 61: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Desenfileirar

fila:

inicio: 1

fim: 7

• Se inicio <= fim

– Retira valor do início

– inicio = inicio + 1

• Exemplo: vamos ler o primeiro número?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 ? ?

Page 62: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Desenfileirar

fila:

inicio: 1

fim: 7

• Se inicio <= fim

– Retira valor do início

– inicio = inicio + 1

• Exemplo: vamos ler o primeiro número?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 ? ?

66

Page 63: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Desenfileirar

fila:

inicio: 1

fim: 7

• Se inicio <= fim

– Retira valor do início

– inicio = inicio + 1

• Exemplo: vamos ler o primeiro número?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 ? ?

Page 64: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Desenfileirar

fila:

inicio: 2

fim: 7

• Se inicio <= fim

– Retira valor do início

– inicio = inicio + 1

• Exemplo: vamos ler o primeiro número?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 ? ?

Page 65: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Desenfileirar

fila:

inicio: 2

fim: 7

• Se inicio <= fim

– Retira valor do início

– inicio = inicio + 1

• Vamos implementar?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 ? ?

Page 66: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

PROBLEMAS DA FILA SEQUENCIAL SIMPLES

Page 67: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Tomemos esta lista

fila:

inicio: 4

fim: 9

• Se fim < n-2

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 55?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 90 28

Page 68: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Tomemos esta lista

fila:

inicio: 4

fim: 9

• Se fim < n-2

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 55?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 90 28

Page 69: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Tomemos esta lista

fila:

inicio: 4

fim: 9

• Se fim < n-2

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 55?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 90 28

Mas não temos espaços vazios

na lista?

Page 70: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Implementando Filas

• Tomemos esta lista

fila:

inicio: 4

fim: 9

• Se fim < n-2

– fim = fim + 1

– Coloca novo valor no fim

• Exemplo: vamos inserir o número 55?

0 1 2 3 4 5 6 7 8 9

100 66 75 33 99 100 22 15 90 28

Mas não temos espaços vazios

na lista?

A solução na próxima aula: Fila Circular!

Page 71: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

EXERCÍCIO DE FIXAÇÃO

Page 72: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Exercício 1 • Faça um programa que apresente o seguinte

menu:

– Enfileirar um número inteiro positivo

– Desenfileirar todos e imprimir os múltiplos de 5

– Terminar o programa

Page 73: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Exercício 2 • Faça um programa que leia uma sequência de

caracteres (char) e os enfileire. Após isso, o programa deve desenfileirá-los e empilhá-los em uma pilha seguindo as seguintes regras:

– Se for uma letra, convertê-la para maiúscula

– Outros caracteres, empilhe sem alterações

• Ao final, desempilhe os valores, imprimindo-os na saída padrão.

Page 74: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

CONCLUSÕES

Page 75: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Resumo

• Filas: lista do tipo FIFO

• São úteis para

– Armazenar temporariamente informações que precisam ser processadas no futuro

– Não altera a ordem de processamento

• TAREFA

– Estudar!

Page 76: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

Próxima Aula

• Como resolver o problema de espaço?

– Lista Circular!

Page 77: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

PERGUNTAS?

Page 78: ESTRUTURA DE ADOS - Caetano · 2012. 8. 28. · (Aula 7) Material Didático Estruturas de Dados (Parte 2) – Páginas 137 a 142 Biblioteca Virtual Estruturas de Dados ... •Estrutura

BOM DESCANSO A TODOS!