estruturas de dados com jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 ·...
TRANSCRIPT
![Page 1: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/1.jpg)
1
Estruturas de Dados com
Jogos
Capítulo 7
Generalização de Listas Encadeadas
![Page 2: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/2.jpg)
2
• Estudar técnicas complementares para a implementação de
Listas Encadeadas: Encadeamento Duplo, Nó Header, e
Primitivas de Baixo Nível;
• Ganhar experiência na elaboração de algoritmos sobre Listas
Encadeadas, implementando Pilhas, Filas, Listas Cadastrais e
Filas de Prioridades utilizando combinações das técnicas
complementares estudadas;
• Conhecer conceitos relativos a generalização de Listas
Encadeadas: Listas Multilineares, Listas de Listas, e Listas
Genéricas Quanto ao Tipo do Elemento;
• Entender que é possível conceber sua própria estrutura
encadeada, para atender a necessidades específicas de
determinada aplicação.
Seus Objetivos neste
Capítulo
![Page 3: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/3.jpg)
3
Listas Duplamente Encadeadas
![Page 4: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/4.jpg)
4
Listas Duplamente Encadeadas
P1→Dir = P3; P3→Esq = P2→Esq;
![Page 5: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/5.jpg)
5
Listas Duplamente Encadeadas
![Page 6: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/6.jpg)
6
Listas Duplamente Encadeadas
P2 = P1→Esq;
![Page 7: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/7.jpg)
7
Listas Duplamente Encadeadas
![Page 8: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/8.jpg)
8
Listas Duplamente Encadeadas
P1→Info = P1→Dir→Dir→Info;
![Page 9: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/9.jpg)
9
Pilha como uma Lista Circular Duplamente Encadeada
![Page 10: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/10.jpg)
10
Operação Empilha
![Page 11: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/11.jpg)
11
Operação Empilha
PAux = NewNode;
PAux→Info = X;
![Page 12: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/12.jpg)
12
Operação Empilha
PAux = NewNode;
PAux→Info = X;
PAux→Esq = Paux;
![Page 13: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/13.jpg)
13
Operação Empilha
PAux = NewNode;
PAux→Info = X;
PAux→Esq = Paux;
PAux→Dir= Paux;
![Page 14: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/14.jpg)
14
Operação Empilha
PAux = NewNode;
PAux→Info = X;
PAux→Esq = Paux;
PAux→Dir= Paux;
P.Topo = Paux;
![Page 15: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/15.jpg)
15
Empilha
PAux = NewNode; PAux→Info = X;
![Page 16: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/16.jpg)
16
Empilha
PAux = NewNode; PAux→Info = X;
PAux→Dir = P.Topo; PAux→Esq = P.Topo→Esq;
![Page 17: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/17.jpg)
17
Empilha
![Page 18: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/18.jpg)
18
Empilha
P.Topo→Esq→Dir = PAux;
![Page 19: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/19.jpg)
19
Empilha
![Page 20: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/20.jpg)
20
Empilha
P.Topo→Esq = PAux;
![Page 21: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/21.jpg)
21
Empilha
P.Topo = PAux; PAux = Null;
![Page 22: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/22.jpg)
22
Empilha
Empilha (parâmetro por referência P do tipo Pilha,
parâmetro X do tipo Char, parâmetro por referência
DeuCerto do tipo Boolean) {
Variável PAux do tipo NodePtr;
Se (Cheia(P)==Verdadeiro) // se P estiver cheia, não empilha
Então DeuCerto = Falso;
Senão { DeuCerto = Verdadeiro;
Se (Vazia(P)==Verdadeiro)
Então {...} /* Caso 1 - Pilha Vazia */
Senão {...} /* Caso 2 - Pilha Não Vazia */
} // senão
} fim Empilha
![Page 23: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/23.jpg)
23
Exercícios 7.2 a 7.5 – Pilha (Desempilha, Cria,
Vazia, Cheia), Fila, Lista Cadastral.
Todas as Operações. Identificar Casos. Visualizar Passo a Passo.
Exercícios Lista Duplamente Encadeada
![Page 24: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/24.jpg)
24
Listas Com Nó Header
![Page 25: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/25.jpg)
25
Busca em uma Lista Não
Ordenada Sem Header
Se (L == Null) // Lista Vazia
Então AchouX = Falso;
Senão { P = L→Dir // P é um ponteiro auxiliar que percorre a Lista
Enquanto (( P→Info != X ) E ( P != L ))
P = P→Dir;
Se (P→Info == X)
Então AchouX = Verdadeiro;
Senão AchouX = Falso;
} // senão
![Page 26: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/26.jpg)
26
Busca em uma Lista Não
Ordenada Com Header
P = Header→Dir; // P é ponteiro auxiliar
Header→Info = X; // apenas para auxiliar na busca
Enquanto (P→Info != X) // E ( P != L ))
P = P→Dir;
Se (P != Header)
Então AchouX = Verdadeiro; // achamos um X de verdade
Senão AchouX = Falso; // achamos um X “de mentira”
![Page 27: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/27.jpg)
27
Exercícios 7.6 e 7.7 – Fila e Lista Cadastral.
Todas as Operações. Identificar Casos. Visualizar Passo a Passo.
Exercícios Listas Com Nó Header
![Page 28: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/28.jpg)
28
Operações de Baixo Nível para Listas Encadeadas
![Page 29: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/29.jpg)
29
Operações de Baixo Nível para
Listas Encadeadas
Remove_P (LB, P, Ok)
InsereADireitaDeP (LB, P, X,Ok)
EstáNaLista (LB, X, P)
Char Info_de_P (LB, P, Ok)
Vazia (LB)
Cheia(LB)
Cria (LB)
PegaOPrimeiro(LB, X, TemElemento)
PegaOPróximo(LB, X, TemElemento)
![Page 30: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/30.jpg)
30
Pilha Implementada a Partir de
Operações de Baixo Nível
Empilha (parâmetro por referência LB do tipo ListaBásica, parâmetro X do tipo Char,
parâmetro por referência DeuCerto do tipo Boolean) {
} // fim Empilha
InsereADireitaDeP (LB, P, X,Ok)
![Page 31: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/31.jpg)
31
Pilha Implementada a Partir de
Operações de Baixo Nível
Empilha (parâmetro por referência LB do tipo ListaBásica, parâmetro X do tipo Char,
parâmetro por referência DeuCerto do tipo Boolean) {
InsereADireitaDeP (LB, LB.Header, X, DeuCerto);
/* DeuCerto é atualizado por InsereADireitaDeP */
} // fim Empilha
InsereADireitaDeP (LB, P, X,Ok)
![Page 32: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/32.jpg)
32
Pilha Implementada a Partir de
Operações de Baixo Nível
Desempilha (parâmetro por referência LB do tipo ListaBásica, parâmetro por
referência X do tipo Char, parâmetro por referência DeuCerto do tipo Boolean) {
} // fim Desempilha
Char Info_de_P (LB, P, Ok)
Remove_P (LB, P, Ok)
![Page 33: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/33.jpg)
33
Pilha Implementada a Partir de
Operações de Baixo Nível
Desempilha (parâmetro por referência LB do tipo ListaBásica, parâmetro por
referência X do tipo Char, parâmetro por referência DeuCerto do tipo Boolean) {
X = Info_de_P( LB, LB.Header→Dir, DeuCerto );
Remove_P ( LB, LB.Header→Dir, DeuCerto );
/* DeuCerto é atualizado por Remove_P */
} // fim Desempilha
Char Info_de_P (LB, P, Ok)
Remove_P (LB, P, Ok)
![Page 34: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/34.jpg)
34
Exercícios 7.9 e 7.10 – Fila e Lista Cadastral
Implementadas a partir das Operações de Baixo Nível.
Todas as Operações. Identificar Casos. Visualizar Passo a Passo. Considere
Implementação por Lista Duplamente Encadeada com Header.
Exercícios Operações de Baixo Nível para Listas Encadeadas
![Page 35: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/35.jpg)
35
Implementando as Operações de
Baixo Nível InsereADireitaDeP (LB, P, X,Ok)
![Page 36: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/36.jpg)
36
Implementando as Operações de
Baixo Nível InsereADireitaDeP (LB, P, X,Ok)
PAux→Dir = P→Dir; PAux→Esq = P;
![Page 37: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/37.jpg)
37
Implementando as Operações de
Baixo Nível InsereADireitaDeP (LB, P, X,Ok)
![Page 38: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/38.jpg)
38
Implementando as Operações de
Baixo Nível InsereADireitaDeP (LB, P, X,Ok)
P→Dir→Esq = PAux;
![Page 39: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/39.jpg)
39
Implementando as Operações de
Baixo Nível InsereADireitaDeP (LB, P, X,Ok)
![Page 40: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/40.jpg)
40
Implementando as Operações de
Baixo Nível InsereADireitaDeP (LB, P, X,Ok)
P→Dir = PAux;
![Page 41: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/41.jpg)
41
Implementando as Operações de
Baixo Nível
InsereADireitaDeP (parâmetro por referência LB do tipo ListaBásica, parâmetro P
do tipo NodePtr, parâmetro por referência DeuCerto do tipo Boolean) {
/* Insere um novo Nó a direita do Nó apontado por P, passado como parâmetro */
Variável auxiliar NovoNó do tipo NodePtr; // NodePtr = ponteiro para Nó
Se (Cheia(LB)==Verdadeiro)
Então DeuCerto = Falso;
Senão { DeuCerto = Verdadeiro;
PAux = NewNode;
PAux→Info = X;
PAux→Dir = P→Dir;
PAux→Esq = P;
P→Dir→Esq = PAux;
P→Dir = PAux;
Aux = Null;
} // fim Senão
} // fim Insere_a_Direita_de_P
![Page 42: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/42.jpg)
42
Exercício 7.12 Remove_P, EstáNaLista e Info_de_P
Identificar Casos. Visualizar Passo a Passo. Considere Implementação por Lista
Duplamente Encadeada com Header.
Exercícios Implementar Primitivas de Baixo Nível
![Page 43: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/43.jpg)
43
Generalização de Listas Encadeadas
Árvores
![Page 44: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/44.jpg)
44
Generalização de Listas Encadeadas
Matrizes Esparsas
![Page 45: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/45.jpg)
45
Generalização de Listas Encadeadas
Estruturas Aninhadas
![Page 46: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/46.jpg)
46
Generalização de Listas Encadeadas
Estruturas Genéricas Quanto ao Tipo do Elemento: Templates
/* definição da Classe Node */
template<class TipoDoElemento> class Node {
// class Node usa template TipoDoElemento
private:
TipoDoElemento Info; // o tipo do elemento será definido posteriormente
Node<TipoDoElemento>* Next;
...
/* definição da Classe Pilha */
template<class TipoDoElemento> class Pilha {
private:
Node<TipoDoElemento> * Topo;
...
/* no momento de criar as Pilhas, indicamos o tipo dos elementos */
Pilha<int> * p1 = new Pilha<int>(); // cria uma Pilha de Inteiros - P1
Pilha<Carta> * p2 = new Pilha<Carta>(); // cria uma Pilha de Cartas - P2
![Page 47: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/47.jpg)
47
Generalização de Listas Encadeadas
Elementos de Tipos Diferentes em uma Mesma Estrutura
![Page 48: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/48.jpg)
48
Exercício 7.17 "Pilhas, Filas e Listas Cadastrais possuem uma funcionalidade
bem definida, e podem ser implementadas através de Listas Encadeadas ou
através de outras técnicas". Neste contexto, qual a diferença entre uma Lista
Cadastral e uma Lista Encadeada?
Exercício 7.13 Fila de Prioridades: Fila com Atendimento Prioritário a
Idosos
Fila de espera comdois critérios: (1) a idade do indivíduo que está na Fila, em
anos; (2) a ordem de chegada. O primeiro a ser atendido será sempre o
individuo com idade mais alta. Se houver mais que um individuo com a mesma
idade, será respeitado o segundo critério, que é a ordem de chegada. Projete
uma estrutura para implementar esta Fila com Atendimento Prioritário a
Idosos. Implemente a funcionalidade definida com a técnica de implementação
que considerar mais adequada.
Exercício 7.14 Lista Cadastral em C++
Exercícios
![Page 49: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/49.jpg)
49
Passos Para Construir uma Boa Solução
Passo 1: Identificar Casos e Desenhar a Situação Inicial.
Passo 2: Desenho da Situação Final.
Passo 3: Algoritmo para Tratar Cada Caso,
Separadamente.
Passo 4: Faça um Algoritmo Geral
do Modo Mais Simples.
Passo 5: Testar Cada Caso, Alterando o Desenho Passo a Passo.
Para Tratar Caso 2:
•DeleteNode(P);
•L=Null;
![Page 50: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/50.jpg)
50
Avanço de Projeto
(Exercício 6.30) Técnica de Implementação
Qual combinação de técnicas parece ser mais adequada às
características do jogo referente ao Desafio 3 que você
desenvolverá?
Projete Sua Própria Estrutura!
As Listas Encadeadas, e suas variações, constituem uma técnica
poderosa e flexível para armazenamento temporário de conjuntos de
elementos. É possível adaptar ou combinar diversas técnicas para
projetar estrutura encadeada que melhor atenda as peculiaridades de
sua aplicação.
![Page 51: Estruturas de Dados com Jogosedcomjogos.dc.ufscar.br/slides/pdf/capitulo7.pdf · 2014-04-15 · Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro](https://reader034.vdocuments.site/reader034/viewer/2022052320/5c11e31409d3f2d36d8cf63d/html5/thumbnails/51.jpg)
51
Estruturas de Dados com Jogos Aprender a programar pode ser divertido!
Faça um jogo com a sua cara! Distribua para os
seus amigos!
Comece a
Desenvolver
Seu Jogo
Agora!