![Page 1: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/1.jpg)
MC-202 — Unidade 8Árvore Binárias
Lehilton Pedrosa
Instituto de Computação – Unicamp
Segundo Semestre de 2016
. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
![Page 2: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/2.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Roteiro
1 Introdução
2 Árvore binária
3 Percursos em árvore
4 Outras representações
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 2 / 22
![Page 3: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/3.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introdução
ProblemaVocê e um(a) amigo(a) estão jogando. Ele pensa em um animal de umcerto conjunto e você tem que adivinhar que animal é. Você só pode fazerperguntas com respostas sim ou não!
Pergunta: Como fazer o menor número de perguntas?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 3 / 22
![Page 4: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/4.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introdução
ProblemaVocê e um(a) amigo(a) estão jogando. Ele pensa em um animal de umcerto conjunto e você tem que adivinhar que animal é. Você só pode fazerperguntas com respostas sim ou não!
Pergunta: Como fazer o menor número de perguntas?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 3 / 22
![Page 5: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/5.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Adivinhando
Pássaro Macaco Elefante Cachorro Golfinho Baleia Peixe Polvo
Criamos uma árvore de decisão!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 4 / 22
![Page 6: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/6.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Adivinhando
Nada?
Pássaro Macaco Elefante Cachorro Golfinho Baleia Peixe Polvo
Criamos uma árvore de decisão!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 4 / 22
![Page 7: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/7.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Adivinhando
Nada?
Pássaro Macaco Elefante Cachorro Golfinho Baleia Peixe Polvo
sim
Criamos uma árvore de decisão!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 4 / 22
![Page 8: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/8.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Adivinhando
Nada?
Mamífero?
Pássaro Macaco Elefante Cachorro Golfinho Baleia Peixe Polvo
sim
Criamos uma árvore de decisão!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 4 / 22
![Page 9: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/9.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Adivinhando
Nada?
Mamífero?
Pássaro Macaco Elefante Cachorro Golfinho Baleia Peixe Polvo
sim
sim
Criamos uma árvore de decisão!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 4 / 22
![Page 10: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/10.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Adivinhando
Nada?
Mamífero?
Grande?
Pássaro Macaco Elefante Cachorro Golfinho Baleia Peixe Polvo
sim
sim
Criamos uma árvore de decisão!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 4 / 22
![Page 11: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/11.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Adivinhando
Nada?
Mamífero?
Grande?
Pássaro Macaco Elefante Cachorro Golfinho Baleia Peixe Polvo
sim
sim
não
Criamos uma árvore de decisão!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 4 / 22
![Page 12: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/12.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Adivinhando
Nada?
Mamífero?
Tentáculo?
4 patas?
Grande?Voa? Grande?
Pássaro Macaco Elefante Cachorro Golfinho Baleia Peixe Polvo
sim
sim
não
não
não
não nãonão simsim sim sim
não
Criamos uma árvore de decisão!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 4 / 22
![Page 13: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/13.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Adivinhando
Nada?
Mamífero?
Tentáculo?
4 patas?
Grande?Voa? Grande?
Pássaro Macaco Elefante Cachorro Golfinho Baleia Peixe Polvo
sim
sim
não
não
não
não nãonão simsim sim sim
não
Criamos uma árvore de decisão!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 4 / 22
![Page 14: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/14.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Árvore binária
DefiniçãoUma árvore binária é um conjunto de nós T tal que ou T é vazio, ou
T contém um elemento especial r , denominado raizT \ {r} é a união de duas subárvores disjuntas, Te e Td ,denominadas filho esquerdo e filho direito.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 5 / 22
![Page 15: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/15.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Exemplo com definição
Nada?
Mamífero?
Tentáculo?
4 patas?
Grande?Voa? Grande?
Pássaro Macaco Elefante Cachorro Golfinho Baleia Peixe Polvo
sim
sim
não
não
não
não nãonão simsim sim sim
não
r
TdTe
Cada parte!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 6 / 22
![Page 16: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/16.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Uma árvore com números
2
5 7
10 8 61
94
3
Exemplo mais simples.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 7 / 22
![Page 17: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/17.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Comparando com atenção
2
5 7
10 8 61
94
3
=
2
5 7
10 8 61
94
3
Filhos de 4:esquerdo: vaziodireito: 3
Filhos de 4:esquerdo: 3direito: vazio
Ordem dos filhos é relevante!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 8 / 22
![Page 18: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/18.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Comparando com atenção
2
5 7
10 8 61
94
3
=
2
5 7
10 8 61
94
3
Filhos de 4:esquerdo: vaziodireito: 3
Filhos de 4:esquerdo: 3direito: vazio
Ordem dos filhos é relevante!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 8 / 22
![Page 19: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/19.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Comparando com atenção
2
5 7
10 8 61
94
3
=
2
5 7
10 8 61
94
3
Filhos de 4:esquerdo: vaziodireito: 3
Filhos de 4:esquerdo: 3direito: vazio
Ordem dos filhos é relevante!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 8 / 22
![Page 20: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/20.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Nomenclatura e convenções2
5 7
10 8 61
94
3
Nível 1
Nível 2
Nível 3
Nível 4
Nível 5
Raiz: 2Filho esquerdo de 8: 4
Filho direito de 8: (vazio)Folhas: 10, 6, 9, 3 (só tem filhos vazios)
Nós interno: 2, 5, 7, 8, 1, 4 (tem filhos não vazios)Descendentes de 7: 1, 6, 9
Ancestrais de 4: 8, 5, 2Altura: 5 (número de níveis)
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 9 / 22
![Page 21: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/21.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Algumas propriedades
Propriedades1 Se a altura é h, então a árvore:
▶ tem no mínimo h nós▶ tem no máximo 2h − 1 nós
2 Se a árvore tem n ≥ 1 nós, então:▶ a altura é no máximo n▶ a altura é no mínimo ⌈log2(n + 1)⌉▶ existem exatamente n + 1 subárvores vazias▶ existem exatamente n − 1 árvores não vazias
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 10 / 22
![Page 22: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/22.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação
1
9
2
5 7
68
4
10
3
E se quisermos saber o pai de um nó?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 11 / 22
![Page 23: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/23.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação
1
9
2
5 7
68
4
10
3
E se quisermos saber o pai de um nó?Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 11 / 22
![Page 24: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/24.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação com ponteiro para o pai
2
5 7
8 1
9
6
4
10
3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 12 / 22
![Page 25: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/25.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Uma implementação em C
arvbin.htypedef struct NoArv {
int dado;struct NoArv *esq, *dir;
} NoArv;
NoArv *arv_vazia();NoArv *criar_arv(NoArv *esq, NoArv *dir, int x);NoArv *procurar_no(NoArv *arv, int x);void imprimir(NoArv *arv);
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22
![Page 26: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/26.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percorrendo os nós2
5 7
10 8 61
94
3
Percursos1 Em profundidade: percorre subárvores recursivamente
▶ Pré-ordem (visita primeiro a raiz): 2, 5, 10, 8, 4, 3, 7, 1, 9, 6▶ Pós-ordem (visita a raiz por último): 10, 3, 4, 8, 5, 9, 1, 6, 7, 2▶ Inordem (visita a raiz no meio): 10, 5, 4, 3, 8, 2, 1, 9, 7, 6
2 Em largura: percorre níveis em ordem▶ da esquerda para direita: 2, 5, 7, 10, 8, 1, 6, 4, 9, 3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 14 / 22
![Page 27: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/27.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percorrendo os nós2
5 7
10 8 61
94
3
Percursos1 Em profundidade: percorre subárvores recursivamente
▶ Pré-ordem (visita primeiro a raiz):
2, 5, 10, 8, 4, 3, 7, 1, 9, 6▶ Pós-ordem (visita a raiz por último): 10, 3, 4, 8, 5, 9, 1, 6, 7, 2▶ Inordem (visita a raiz no meio): 10, 5, 4, 3, 8, 2, 1, 9, 7, 6
2 Em largura: percorre níveis em ordem▶ da esquerda para direita: 2, 5, 7, 10, 8, 1, 6, 4, 9, 3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 14 / 22
![Page 28: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/28.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percorrendo os nós2
5 7
10 8 61
94
3
Percursos1 Em profundidade: percorre subárvores recursivamente
▶ Pré-ordem (visita primeiro a raiz): 2, 5, 10, 8, 4, 3, 7, 1, 9, 6
▶ Pós-ordem (visita a raiz por último): 10, 3, 4, 8, 5, 9, 1, 6, 7, 2▶ Inordem (visita a raiz no meio): 10, 5, 4, 3, 8, 2, 1, 9, 7, 6
2 Em largura: percorre níveis em ordem▶ da esquerda para direita: 2, 5, 7, 10, 8, 1, 6, 4, 9, 3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 14 / 22
![Page 29: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/29.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percorrendo os nós2
5 7
10 8 61
94
3
Percursos1 Em profundidade: percorre subárvores recursivamente
▶ Pré-ordem (visita primeiro a raiz): 2, 5, 10, 8, 4, 3, 7, 1, 9, 6▶ Pós-ordem (visita a raiz por último):
10, 3, 4, 8, 5, 9, 1, 6, 7, 2▶ Inordem (visita a raiz no meio): 10, 5, 4, 3, 8, 2, 1, 9, 7, 6
2 Em largura: percorre níveis em ordem▶ da esquerda para direita: 2, 5, 7, 10, 8, 1, 6, 4, 9, 3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 14 / 22
![Page 30: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/30.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percorrendo os nós2
5 7
10 8 61
94
3
Percursos1 Em profundidade: percorre subárvores recursivamente
▶ Pré-ordem (visita primeiro a raiz): 2, 5, 10, 8, 4, 3, 7, 1, 9, 6▶ Pós-ordem (visita a raiz por último): 10, 3, 4, 8, 5, 9, 1, 6, 7, 2
▶ Inordem (visita a raiz no meio): 10, 5, 4, 3, 8, 2, 1, 9, 7, 62 Em largura: percorre níveis em ordem
▶ da esquerda para direita: 2, 5, 7, 10, 8, 1, 6, 4, 9, 3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 14 / 22
![Page 31: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/31.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percorrendo os nós2
5 7
10 8 61
94
3
Percursos1 Em profundidade: percorre subárvores recursivamente
▶ Pré-ordem (visita primeiro a raiz): 2, 5, 10, 8, 4, 3, 7, 1, 9, 6▶ Pós-ordem (visita a raiz por último): 10, 3, 4, 8, 5, 9, 1, 6, 7, 2▶ Inordem (visita a raiz no meio):
10, 5, 4, 3, 8, 2, 1, 9, 7, 62 Em largura: percorre níveis em ordem
▶ da esquerda para direita: 2, 5, 7, 10, 8, 1, 6, 4, 9, 3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 14 / 22
![Page 32: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/32.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percorrendo os nós2
5 7
10 8 61
94
3
Percursos1 Em profundidade: percorre subárvores recursivamente
▶ Pré-ordem (visita primeiro a raiz): 2, 5, 10, 8, 4, 3, 7, 1, 9, 6▶ Pós-ordem (visita a raiz por último): 10, 3, 4, 8, 5, 9, 1, 6, 7, 2▶ Inordem (visita a raiz no meio): 10, 5, 4, 3, 8, 2, 1, 9, 7, 6
2 Em largura: percorre níveis em ordem▶ da esquerda para direita: 2, 5, 7, 10, 8, 1, 6, 4, 9, 3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 14 / 22
![Page 33: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/33.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percorrendo os nós2
5 7
10 8 61
94
3
Percursos1 Em profundidade: percorre subárvores recursivamente
▶ Pré-ordem (visita primeiro a raiz): 2, 5, 10, 8, 4, 3, 7, 1, 9, 6▶ Pós-ordem (visita a raiz por último): 10, 3, 4, 8, 5, 9, 1, 6, 7, 2▶ Inordem (visita a raiz no meio): 10, 5, 4, 3, 8, 2, 1, 9, 7, 6
2 Em largura: percorre níveis em ordem▶ da esquerda para direita:
2, 5, 7, 10, 8, 1, 6, 4, 9, 3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 14 / 22
![Page 34: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/34.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percorrendo os nós2
5 7
10 8 61
94
3
Percursos1 Em profundidade: percorre subárvores recursivamente
▶ Pré-ordem (visita primeiro a raiz): 2, 5, 10, 8, 4, 3, 7, 1, 9, 6▶ Pós-ordem (visita a raiz por último): 10, 3, 4, 8, 5, 9, 1, 6, 7, 2▶ Inordem (visita a raiz no meio): 10, 5, 4, 3, 8, 2, 1, 9, 7, 6
2 Em largura: percorre níveis em ordem▶ da esquerda para direita: 2, 5, 7, 10, 8, 1, 6, 4, 9, 3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 14 / 22
![Page 35: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/35.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Busca em profundidade e expressões
/
+ ^
10 - 2x
9-
3
9 3
OrdemPré-fixa: / + 10 - - 3 9 ^ × 3 9 2Pós-fixa: 10 3 - 9 - + 3 9 × 2 ^ /Infixa: 10 + - 3 - 9 / 3 × 9 ^ 2
Existem ambiguidades?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 15 / 22
![Page 36: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/36.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Busca em profundidade e expressões
/
+ ^
10 - 2x
9-
3
9 3
OrdemPré-fixa: / + 10 - - 3 9 ^ × 3 9 2Pós-fixa: 10 3 - 9 - + 3 9 × 2 ^ /Infixa: 10 + - 3 - 9 / 3 × 9 ^ 2
Existem ambiguidades?Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 15 / 22
![Page 37: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/37.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação de busca em profundidadevoid pre_ordem(NoArv *arv) {
if (arv) {printf("%d ", arv->dado); // visita raizpre_ordem(arv->esq);pre_ordem(arv->dir);
}}void pos_ordem(NoArv *arv) {
if (arv) {pos_ordem(arv->esq);pos_ordem(arv->dir);printf("%d ", arv->dado); // visita raiz
}}void inordem(NoArv *arv) {
if (arv) {inordem(arv->esq);printf("%d ", arv->dado); // visita raizinordem(arv->dir);
}}
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 16 / 22
![Page 38: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/38.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percurso em profundidade com pilhaComo implementar sem usar recursão?
Pré-ordemvoid pre_ordem(NoArv *arv) {
NoPilha *p;iniciar_pilha(&p);
empilhar(&p, arv);while(!pilha_vazia(p)) {
desempilhar(&p, &arv);if (arv) {
empilhar(&p, arv->dir);empilhar(&p, arv->esq);visita(arv);
}}destruir_pilha(&p);
}
Por que empilhamos arv->dir primeiro? Se fosse o contrário?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 17 / 22
![Page 39: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/39.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percurso em profundidade com pilhaComo implementar sem usar recursão?
Pré-ordemvoid pre_ordem(NoArv *arv) {
NoPilha *p;iniciar_pilha(&p);
empilhar(&p, arv);while(!pilha_vazia(p)) {
desempilhar(&p, &arv);if (arv) {
empilhar(&p, arv->dir);empilhar(&p, arv->esq);visita(arv);
}}destruir_pilha(&p);
}
Por que empilhamos arv->dir primeiro? Se fosse o contrário?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 17 / 22
![Page 40: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/40.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percurso em profundidade com pilhaComo implementar sem usar recursão?
Pré-ordemvoid pre_ordem(NoArv *arv) {
NoPilha *p;iniciar_pilha(&p);
empilhar(&p, arv);while(!pilha_vazia(p)) {
desempilhar(&p, &arv);if (arv) {
empilhar(&p, arv->dir);empilhar(&p, arv->esq);visita(arv);
}}destruir_pilha(&p);
}
Por que empilhamos arv->dir primeiro?
Se fosse o contrário?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 17 / 22
![Page 41: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/41.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percurso em profundidade com pilhaComo implementar sem usar recursão?
Pré-ordemvoid pre_ordem(NoArv *arv) {
NoPilha *p;iniciar_pilha(&p);
empilhar(&p, arv);while(!pilha_vazia(p)) {
desempilhar(&p, &arv);if (arv) {
empilhar(&p, arv->dir);empilhar(&p, arv->esq);visita(arv);
}}destruir_pilha(&p);
}
Por que empilhamos arv->dir primeiro? Se fosse o contrário?Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 17 / 22
![Page 42: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/42.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação da busca em larguraComo implementar a busca em largura?
Usamos uma fila!
Nível 5
Nível 1
Nível 2
Nível 3
Nível 4
2
5 7
10 8 61
94
3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 18 / 22
![Page 43: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/43.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação da busca em larguraComo implementar a busca em largura? Usamos uma fila!
Nível 5
Nível 1
Nível 2
Nível 3
Nível 4
2
5 7
10 8 61
94
3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 18 / 22
![Page 44: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/44.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação da busca em larguraComo implementar a busca em largura?
Usamos uma fila!
Nível 5
Nível 1
Nível 2
Nível 3
Nível 4
2
5 7
10 8 61
94
3
2
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 18 / 22
![Page 45: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/45.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação da busca em larguraComo implementar a busca em largura?
Usamos uma fila!
Nível 5
Nível 1
Nível 2
Nível 3
Nível 4
2
5 7
10 8 61
94
3
2 5 7
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 18 / 22
![Page 46: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/46.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação da busca em larguraComo implementar a busca em largura?
Usamos uma fila!
Nível 5
Nível 1
Nível 2
Nível 3
Nível 4
2
5 7
10 8 61
94
3
2 5 8107
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 18 / 22
![Page 47: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/47.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação da busca em larguraComo implementar a busca em largura?
Usamos uma fila!
Nível 5
Nível 1
Nível 2
Nível 3
Nível 4
2
5 7
10 8 61
94
3
2 5 18107 6
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 18 / 22
![Page 48: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/48.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação da busca em larguraComo implementar a busca em largura?
Usamos uma fila!
Nível 5
Nível 1
Nível 2
Nível 3
Nível 4
2
5 7
10 8 61
94
3
2 5 18107 6
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 18 / 22
![Page 49: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/49.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação da busca em larguraComo implementar a busca em largura?
Usamos uma fila!
Nível 5
Nível 1
Nível 2
Nível 3
Nível 4
2
5 7
10 8 61
94
3
2 5 18107 6 4
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 18 / 22
![Page 50: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/50.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação da busca em larguraComo implementar a busca em largura?
Usamos uma fila!
Nível 5
Nível 1
Nível 2
Nível 3
Nível 4
2
5 7
10 8 61
94
3
2 5 18107 6 4 9
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 18 / 22
![Page 51: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/51.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação da busca em larguraComo implementar a busca em largura?
Usamos uma fila!
Nível 5
Nível 1
Nível 2
Nível 3
Nível 4
2
5 7
10 8 61
94
3
2 5 18107 6 4 9
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 18 / 22
![Page 52: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/52.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação da busca em larguraComo implementar a busca em largura?
Usamos uma fila!
Nível 5
Nível 1
Nível 2
Nível 3
Nível 4
2
5 7
10 8 61
94
3
2 5 18107 6 4 9 3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 18 / 22
![Page 53: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/53.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação da busca em larguraComo implementar a busca em largura?
Usamos uma fila!
Nível 5
Nível 1
Nível 2
Nível 3
Nível 4
2
5 7
10 8 61
94
3
2 5 18107 6 4 9 3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 18 / 22
![Page 54: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/54.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação da busca em larguraComo implementar a busca em largura?
Usamos uma fila!
Nível 5
Nível 1
Nível 2
Nível 3
Nível 4
2
5 7
10 8 61
94
3
2 5 18107 6 4 9 3
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 18 / 22
![Page 55: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/55.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percurso em largura
Percurso em larguravoid largura(NoArv *arv) {
NoFila *f;iniciar_fila(&f);
enfileirar(&f, arv);while(!fila_vazia(f)) {
desenfileirar(&p, &arv);if (arv) {
enfileirar(&f, arv->esq);enfileirar(&f, arv->dir);visita(arv);
}}destruir_fila(&f);
}
Agora enfileiramos arv->esq primeiro! Se fosse o contrário?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 19 / 22
![Page 56: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/56.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percurso em largura
Percurso em larguravoid largura(NoArv *arv) {
NoFila *f;iniciar_fila(&f);
enfileirar(&f, arv);while(!fila_vazia(f)) {
desenfileirar(&p, &arv);if (arv) {
enfileirar(&f, arv->esq);enfileirar(&f, arv->dir);visita(arv);
}}destruir_fila(&f);
}
Agora enfileiramos arv->esq primeiro!
Se fosse o contrário?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 19 / 22
![Page 57: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/57.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percurso em largura
Percurso em larguravoid largura(NoArv *arv) {
NoFila *f;iniciar_fila(&f);
enfileirar(&f, arv);while(!fila_vazia(f)) {
desenfileirar(&p, &arv);if (arv) {
enfileirar(&f, arv->esq);enfileirar(&f, arv->dir);visita(arv);
}}destruir_fila(&f);
}
Agora enfileiramos arv->esq primeiro! Se fosse o contrário?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 19 / 22
![Page 58: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/58.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Outras representações de árvore binária
ProblemaTemos uma árvore e queremos guardar aestrutura em um arquivo de texto para posteriorprocessamento. Como armazenar essa árvore?
a
b c
d fe
g
Representações externas1 Indicadores de subárvores com percurso em profundidade:
a 1 1, b 0 1, d 1 0, g 0 0, c 1 1, e 0 0, f 0 02 Notação com parênteses:
▶ pré-ordem: (a(b()(d(g()())()))(c(e()())(f()())))▶ inordem: (()b((()g())d()))a((()e())c(()f()))
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 20 / 22
![Page 59: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/59.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Outras representações de árvore binária
ProblemaTemos uma árvore e queremos guardar aestrutura em um arquivo de texto para posteriorprocessamento. Como armazenar essa árvore?
a
b c
d fe
g
Representações externas1 Indicadores de subárvores com percurso em profundidade:
a 1 1, b 0 1, d 1 0, g 0 0, c 1 1, e 0 0, f 0 0
2 Notação com parênteses:▶ pré-ordem: (a(b()(d(g()())()))(c(e()())(f()())))▶ inordem: (()b((()g())d()))a((()e())c(()f()))
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 20 / 22
![Page 60: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/60.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Outras representações de árvore binária
ProblemaTemos uma árvore e queremos guardar aestrutura em um arquivo de texto para posteriorprocessamento. Como armazenar essa árvore?
a
b c
d fe
g
Representações externas1 Indicadores de subárvores com percurso em profundidade:
a 1 1, b 0 1, d 1 0, g 0 0, c 1 1, e 0 0, f 0 02 Notação com parênteses:
▶ pré-ordem: (a(b()(d(g()())()))(c(e()())(f()())))▶ inordem: (()b((()g())d()))a((()e())c(()f()))
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 20 / 22
![Page 61: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/61.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Exercício 1
Joãozinho quer implementar uma estrutura de dados para representar otriângulo de Pascal até certa altura. Após assistir à aula de árvoresbinárias, ele decidiu que essa era a estrutura ideal e fez o seguinte desenho:
1
1 1
21 1
31 3 1
41 6 4 1
1 A estrutura que Joãozinho criou éuma árvore binária? Por quê? Senão, sugira uma estrutura maisadequada.
2 Qual o resultado será impresso seas funções para busca emprofundidade (pré-ordem, inordeme pós-ordem) e em largura foremchamadas com essa estrutura(comece com uma altura menor)?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 21 / 22
![Page 62: MC-202 — Unidade 8 Árvore Bináriaslehilton/mc202ef/unidade08.pdfLehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 13 / 22..... Percorrendo os nós Percursos](https://reader033.vdocuments.pub/reader033/viewer/2022053123/60ac0d46b64b383e4a627876/html5/thumbnails/62.jpg)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Exercício 2 - Recuperando uma árvore
1 Escreva uma função para recuperar uma árvore na memória a partir de umastring com a notação em parênteses em pré-ordem.
2 Você obteve um arquivo em que foram impressos os nós de uma árvorebinária no percurso pré-ordem e gostaria de obter a árvore original.Infelizmente não é possível reconstruir essa árvore unicamente. Dê umexemplo que justifique essa afirmação.
3 E se você também tivesse um arquivo com os dados impressos com percursoinordem, você conseguiria obter a árvore original? Que combinações depercursos você precisa?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 8 Segundo Semestre de 2016 22 / 22