estrutura de ados - caetanode alunos •em grupos de 4 alunos, debata as vantagens e desvantagens do...

44
E STRUTURA DE D ADOS Prof. Dr. Daniel Caetano 2012 - 2 FILAS DINÂMICAS

Upload: others

Post on 09-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

ESTRUTURA DE DADOS

Prof. Dr. Daniel Caetano

2012 - 2

FILAS DINÂMICAS

Page 2: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Objetivos

• Compreender o conceito de fila encadeada

• Usar filas dinâmicas para aplicações

• Conhecer as vantagens e desvantagens das filas encadeadas

• Atividade Estruturada!

Page 3: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Material de Estudo

Material Acesso ao Material

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

Material Didático Estruturas de Dados (Parte 2) – Páginas 143 a 146

Online C Completo e Total – Páginas 540 a 550

Page 4: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

RECORDANDO...

Page 5: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Recordando...

• Vimos Pilhas Encadeadas

• Uso:

– Inserção no Topo (Início)

– Remoção do Topo (Início)

• E se continuarmos removendo do início, mas inserirmos no fim?

• Virou uma fila?

Page 6: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

FILA ENCADEADA OU FILA DINÂMICA

Page 7: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Filas Encadeadas

• Sempre que usarmos uma lista encadeada

– Inserirmos no fim... e

– Removermos do início...

• Fila Dinâmica ou Encadeada

• Exemplo

Page 8: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Inicializando NULL

no *fila = NULL;

Quando criamos uma fila, ela está vazia

fila

Page 9: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Inserção

1

NULL

NULL

no *tmp; tmp = new no; tmp->valor = 1; tmp->prox = NULL

Como criamos um elemento?

fila

tmp

Page 10: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Inserção

1

NULL

NULL

if (fila == NULL) { fila = tmp; }

Como inseri-lo na fila? fila

tmp

Page 11: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Inserção

1

NULL

NULL

if (fila == NULL) { fila = tmp; }

Como inseri-lo na fila? fila

tmp

Page 12: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Inserção

1

NULL

NULL

if (fila == NULL) { fila = tmp; }

Como inseri-lo na fila? fila

tmp

Page 13: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Inserção

1

NULL

if (fila == NULL) { fila = tmp; }

Como inseri-lo na fila? fila

tmp

Page 14: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Inserção

1

NULL

if (fila != NULL) { fim = fila; while (fim->prox != NULL) { fim = fim->prox; }

fim->prox = tmp; }

Inserindo outro nó fila

2

NULL tmp

Page 15: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Inserção

1

NULL

if (fila != NULL) { fim = fila; while (fim->prox != NULL) { fim = fim->prox; }

fim->prox = tmp; }

Inserindo outro nó fila

2

NULL tmp

Page 16: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Inserção

1

NULL

if (fila != NULL) { fim = fila; while (fim->prox != NULL) { fim = fim->prox; }

fim->prox = tmp; }

Inserindo outro nó fila

2

NULL tmp

Page 17: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Inserção

1

NULL

if (fila != NULL) { fim = fila; while (fim->prox != NULL) { fim = fim->prox; }

fim->prox = tmp; }

Inserindo outro nó fila

2

NULL tmp

fim

Page 18: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Inserção

1

NULL

if (fila != NULL) { fim = fila; while (fim->prox != NULL) { fim = fim->prox; }

fim->prox = tmp; }

Inserindo outro nó fila

2

NULL tmp

fim

Page 19: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Inserção

1

NULL

if (fila != NULL) { fim = fila; while (fim->prox != NULL) { fim = fim->prox; }

fim->prox = tmp; }

Inserindo outro nó fila

2

NULL tmp

fim

Page 20: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Inserção

1 if (fila != NULL) { fim = fila; while (fim->prox != NULL) { fim = fim->prox; }

fim->prox = tmp; }

Inserindo outro nó fila

2

NULL tmp

fim

Page 21: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Remoção

2

NULL

no *tmp; tmp = fila; fila = tmp->prox; valor = tmp->valor; delete tmp;

Removendo um nó fila

1

Page 22: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Remoção

2

NULL

no *tmp; tmp = fila; fila = tmp->prox; valor = tmp->valor; delete tmp;

Removendo um nó fila

1

Page 23: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Remoção

2

NULL

no *tmp; tmp = fila; fila = tmp->prox; valor = tmp->valor; delete tmp;

Removendo um nó fila

tmp 1

Page 24: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Remoção

2

NULL

no *tmp; tmp = fila; fila = tmp->prox; valor = tmp->valor; delete tmp;

Removendo um nó fila

tmp 1

Page 25: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Remoção

2

NULL

no *tmp; tmp = fila; fila = tmp->prox; valor = tmp->valor; delete tmp;

Removendo um nó fila

tmp 1

Page 26: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Remoção

2

NULL

no *tmp; tmp = fila; fila = tmp->prox; valor = tmp->valor; delete tmp;

Removendo um nó fila

tmp 1

Page 27: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Remoção

2

NULL

no *tmp; tmp = fila; fila = tmp->prox; valor = tmp->valor; delete tmp;

Removendo um nó fila

tmp 1

Page 28: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Remoção

2

NULL

no *tmp; tmp = fila; fila = tmp->prox; valor = tmp->valor; delete tmp;

Removendo um nó fila

tmp 1

Page 29: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Remoção

2

NULL

no *tmp; tmp = fila; fila = tmp->prox; valor = tmp->valor; delete tmp;

Removendo um nó fila

tmp 1 1

Page 30: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Remoção

2

NULL

no *tmp; tmp = fila; fila = tmp->prox; valor = tmp->valor; delete tmp;

Removendo um nó fila

tmp 1

Page 31: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Fila: Remoção

2

NULL

no *tmp; tmp = fila; fila = tmp->prox; valor = tmp->valor; delete tmp;

Removendo um nó fila

tmp

Page 32: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

DISCUSSÃO: QUALIDADE DA IMPLEMENTAÇÃO

Page 33: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Qualidade da Implementação • Qual o problema dessa implementação?

– Pense na inserção e remoção...

– Há como melhorar?

Page 34: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

PRÁTICA:

CONSTRUINDO UMA FILA ENCADEADA

Page 35: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Construindo uma Pilha Encadeada • Acompanhe o professor na construção...

Page 36: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

EXERCÍCIOS DE FIXAÇÃO

Page 37: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Exercícios • Como base em “ex1.cpp” e “filaaluno.cpp”:

– Modifique ex1.cpp para que implemente uma fila de alunos

• Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento;

– Elabore uma lista de vantagens e desvantagens comparando as estruturas de dados contíguas com suas versões encadeadas: pilhas, filas e listas

Page 38: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Vantagens e Desvantagens Vantagens Desvantagens

Encadeados Em geral

Pilhas Encadeadas

Filas Encadeadas

Listas Encadeadas

Page 39: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Vantagens e Desvantagens Vantagens Desvantagens

Encadeados Em geral

- Menor consumo de memória - Menor processamento em tarefas complexas - Tamanho máximo limitado pela memória do equipamento - Protótipos mais simples

- Maior complexidade de programação - Uso de ponteiros - Maior processamento em tarefas simples - Consumo de processamento para alocação de memória

Pilhas Encadeadas

- Apenas um apontador

Filas Encadeadas

- Não exige implementação circular - Apenas dois apontadores

- Se não for usado apontador de fim, custo para inserção cresce com o tamanho da fila

Listas Encadeadas

- Inserção ordenada e ordenação mais eficientes - Apenas um apontador

- Acesso aleatório prejudicado (busca)

Page 40: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

CONCLUSÕES

Page 41: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Resumo

• As listas encadeadas podem ser usadas como filas

• É mais interessante criar uma estrutura específica, com referências para início e fim

• Adaptar programas que usam filas contíguas para usar filas encadeadas é simples

• TAREFA – Atividade Estruturada!

Page 42: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

Próxima Aula

Page 43: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

PERGUNTAS?

Page 44: ESTRUTURA DE ADOS - Caetanode alunos •Em grupos de 4 alunos, debata as vantagens e desvantagens do uso de encadeamento; –Elabore uma lista de vantagens e desvantagens comparando

BOM DESCANSO A TODOS!