Árvores binárias de busca - tiago de...
TRANSCRIPT
![Page 1: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/1.jpg)
Algoritmos e Estruturas de Dados I
Árvores Binárias de Busca
Prof. Tiago Eugenio de [email protected]
www.tiagodemelo.info
![Page 2: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/2.jpg)
2/186
Observações
● O conteúdo dessa aula é parcialmente proveniente do Capítulo 14 do livro “Data Structure and Algorithms Using Python”.
● As palavras com a fonte Courier indicam uma palavra-reservada da linguagem de programação.
![Page 3: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/3.jpg)
3/186
Árvores Binárias de Busca
![Page 4: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/4.jpg)
4/186
Introdução
![Page 5: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/5.jpg)
5/186
Introdução
● Busca (pesquisa) de dados em texto é uma operação bastante comum e, por isso, bastante estudada.
![Page 6: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/6.jpg)
6/186
Introdução
● Busca (pesquisa) de dados em texto é uma operação bastante comum e, por isso, bastante estudada.
● Uma pesquisa linear de um array ou uma lista de Python é bastante lenta.
![Page 7: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/7.jpg)
7/186
Introdução
● Busca (pesquisa) de dados em texto é uma operação bastante comum e, por isso, bastante estudada.
● Uma pesquisa linear de um array ou uma lista de Python é bastante lenta.– Essa pesquisa pode ser melhorada com uma busca
binária.
![Page 8: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/8.jpg)
8/186
Introdução
● Busca (pesquisa) de dados em texto é uma operação bastante comum e, por isso, bastante estudada.
● Uma pesquisa linear de um array ou uma lista de Python é bastante lenta.– Essa pesquisa pode ser melhorada com uma busca
binária.– Porém, arrays e listas de Python ainda têm
dificuldade de realizar as operação de inserção e remoção de chaves.
![Page 9: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/9.jpg)
9/186
Introdução
● Busca (pesquisa) de dados em texto é uma operação bastante comum e, por isso, bastante estudada.
● Uma pesquisa linear de um array ou uma lista de Python é bastante lenta.– Essa pesquisa pode ser melhorada com uma busca binária.– Porém, arrays e listas de Python ainda têm dificuldade de
realizar as operação de inserção e remoção de chaves.– Exemplo: a remoção de uma chave obriga a reorganização
da lista, pois a busca binária somente funciona em listas (arrays) ordenados.
![Page 10: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/10.jpg)
10/186
Introdução
● Busca (pesquisa) de dados em texto é uma operação bastante comum e, por isso, bastante estudada.
● Uma pesquisa linear de um array ou uma lista de Python é bastante lenta.– Essa pesquisa pode ser melhorada com uma busca binária.– Porém, arrays e listas de Python ainda têm dificuldade de realizar as
operação de inserção e remoção de chaves.– Exemplo: a remoção de uma chave obriga a reorganização da lista,
pois a busca binária somente funciona em listas (arrays) ordenados.● O objetivo primário de uma árvore de busca é fornecer uma
eficiente operação de busca para rapidamente localizar um específico item na árvore.
![Page 11: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/11.jpg)
11/186
Árvore Binária de Busca (ABB)
![Page 12: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/12.jpg)
12/186
Árvore Binária de Busca (ABB)
● Uma árvore binária de busca (ABB) – binary search tree (BST) – é uma árvore binária em que cada nó contém um campo chave e a árvore é estruturada de tal maneira que para cada nó interior V:
![Page 13: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/13.jpg)
13/186
Árvore Binária de Busca (ABB)
● Uma árvore binária de busca (ABB) – binary search tree (BST) – é uma árvore binária em que cada nó contém um campo chave e a árvore é estruturada de tal maneira que para cada nó interior V:– Todas as chaves menores que a chave do nó V
devem ser armazenadas à esquerda de V.
![Page 14: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/14.jpg)
14/186
Árvore Binária de Busca (ABB)
● Uma árvore binária de busca (ABB) – binary search tree (BST) – é uma árvore binária em que cada nó contém um campo chave e a árvore é estruturada de tal maneira que para cada nó interior V:– Todas as chaves menores que a chave do nó V
devem ser armazenadas à esquerda de V.– Todas as chaves maiores que a chave do nó V
devem ser armazenadas à direita de V.
![Page 15: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/15.jpg)
15/186
Árvore Binária de Busca (ABB)
● Exemplo de ABB:
![Page 16: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/16.jpg)
16/186
Árvore Binária de Busca (ABB)
● Exemplo de ABB:
![Page 17: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/17.jpg)
17/186
Árvore Binária de Busca (ABB)
● Exemplo de ABB:
1 → 4 → 12 → 23 → 29 → 37 → 41 → 60 → 71 → 84 → 90 → 100
![Page 18: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/18.jpg)
18/186
Árvore Binária de Busca (ABB)
![Page 19: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/19.jpg)
19/186
Árvore Binária de Busca (ABB)
● Observações:
![Page 20: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/20.jpg)
20/186
Árvore Binária de Busca (ABB)
● Observações:– A nossa definição de ABB impede o
armazenamento de chaves duplicadas.
![Page 21: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/21.jpg)
21/186
Árvore Binária de Busca (ABB)
● Observações:– A nossa definição de ABB impede o
armazenamento de chaves duplicadas.● É uma suposição realista para vários problemas.
![Page 22: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/22.jpg)
22/186
Árvore Binária de Busca (ABB)
● Observações:– A nossa definição de ABB impede o
armazenamento de chaves duplicadas.● É uma suposição realista para vários problemas.● Isto torna a implementação mais simples.
![Page 23: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/23.jpg)
23/186
Árvore Binária de Busca (ABB)
● Observações:– A nossa definição de ABB impede o
armazenamento de chaves duplicadas.● É uma suposição realista para vários problemas.● Isto torna a implementação mais simples.● Essa restrição poderia ser alterada para permitir o
armazenamento de chaves duplicadas.
![Page 24: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/24.jpg)
24/186
Árvore Binária de Busca (ABB)
● Observações:– A nossa definição de ABB impede o
armazenamento de chaves duplicadas.● É uma suposição realista para vários problemas.● Isto torna a implementação mais simples.● Essa restrição poderia ser alterada para permitir o
armazenamento de chaves duplicadas.● Por questões didáticas, nós estamos apresentando
apenas uma versão que considera chaves únicas..
![Page 25: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/25.jpg)
25/186
TAD de ABB
![Page 26: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/26.jpg)
26/186
TAD de ABB
![Page 27: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/27.jpg)
27/186
TAD de ABB
![Page 28: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/28.jpg)
28/186
TAD de ABB
![Page 29: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/29.jpg)
29/186
TAD de ABB
![Page 30: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/30.jpg)
30/186
TAD de ABB
O que é um iterador?
![Page 31: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/31.jpg)
31/186
TAD de ABB
O que é um iterador?
É qualquer tipo que permita uso
de loop (for).
![Page 32: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/32.jpg)
32/186
TAD de ABB
![Page 33: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/33.jpg)
33/186
TAD de ABB
![Page 34: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/34.jpg)
34/186
Operação de Busca
![Page 35: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/35.jpg)
35/186
Operação de Busca
● Dada uma árvore binária, alguém sempre vai querer buscar na árvore para determinar se ela contém uma determinada chave (ou localizar um elemento específico).
![Page 36: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/36.jpg)
36/186
Operação de Busca
● Dada uma árvore binária, alguém sempre vai querer buscar na árvore para determinar se ela contém uma determinada chave (ou localizar um elemento específico).
● Lembre-se:
![Page 37: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/37.jpg)
37/186
Operação de Busca
● Dada uma árvore binária, alguém sempre vai querer buscar na árvore para determinar se ela contém uma determinada chave (ou localizar um elemento específico).
● Lembre-se:– Existe um único caminho da raiz até algum dos nós
da árvore.
![Page 38: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/38.jpg)
38/186
Operação de Busca
● Dada uma árvore binária, alguém sempre vai querer buscar na árvore para determinar se ela contém uma determinada chave (ou localizar um elemento específico).
● Lembre-se:– Existe um único caminho da raiz até algum dos nós
da árvore.● A questão é:
![Page 39: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/39.jpg)
39/186
Operação de Busca
● Dada uma árvore binária, alguém sempre vai querer buscar na árvore para determinar se ela contém uma determinada chave (ou localizar um elemento específico).
● Lembre-se:– Existe um único caminho da raiz até algum dos nós da
árvore.● A questão é:
– Como nós sabemos qual caminho seguir?
![Page 40: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/40.jpg)
40/186
Operação de Busca
![Page 41: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/41.jpg)
41/186
Operação de Busca
● O início da busca sempre se iniciará pela raiz.
![Page 42: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/42.jpg)
42/186
Operação de Busca
● O início da busca sempre se iniciará pela raiz.
![Page 43: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/43.jpg)
43/186
Operação de Busca
![Page 44: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/44.jpg)
44/186
Operação de Busca
● O procurado é comparado com o nó da raiz.
![Page 45: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/45.jpg)
45/186
Operação de Busca
● O procurado é comparado com o nó da raiz.
![Page 46: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/46.jpg)
46/186
Operação de Busca
● O procurado é comparado com o nó da raiz.– Se ele for igual, então encontramos.
![Page 47: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/47.jpg)
47/186
Operação de Busca
● O procurado é comparado com o nó da raiz.– Se ele for igual, então encontramos.– Se ele for maior, então estará à direita da raiz.
![Page 48: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/48.jpg)
48/186
Operação de Busca
● O procurado é comparado com o nó da raiz.– Se ele for igual, então encontramos.– Se ele for maior, então estará à direita da raiz.– Se ele for menor, então estará à esquerda da raiz.
![Page 49: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/49.jpg)
49/186
Operação de Busca
● O procurado é comparado com o nó da raiz.– Se ele for igual, então encontramos.– Se ele for maior, então estará à direita da raiz.– Se ele for menor, então estará à esquerda da raiz.– Processo é repetido até localizarmos o alvo ou
encontrarmos um nó filho nulo.
![Page 50: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/50.jpg)
50/186
Operação de Busca
![Page 51: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/51.jpg)
51/186
Operação de Busca
● Suponha que vamos buscar o elemento 29:
![Page 52: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/52.jpg)
52/186
Operação de Busca
● Suponha que vamos buscar o elemento 29:
![Page 53: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/53.jpg)
53/186
Operação de Busca
● Suponha que vamos buscar o elemento 29:
![Page 54: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/54.jpg)
54/186
Operação de Busca
● Suponha que vamos buscar o elemento 29:
![Page 55: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/55.jpg)
55/186
Operação de Busca
● Suponha que vamos buscar o elemento 29:
![Page 56: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/56.jpg)
56/186
Operação de Busca
● Suponha que vamos buscar o elemento 29:
![Page 57: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/57.jpg)
57/186
Operação de Busca
● Suponha que vamos buscar o elemento 29:
![Page 58: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/58.jpg)
58/186
Operação de Busca
● Suponha que vamos buscar o elemento 29:
![Page 59: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/59.jpg)
59/186
Operação de Busca
![Page 60: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/60.jpg)
60/186
Operação de Busca
● Suponha que vamos buscar o elemento 68:
![Page 61: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/61.jpg)
61/186
Operação de Busca
● Suponha que vamos buscar o elemento 68:
![Page 62: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/62.jpg)
62/186
Operação de Busca
● Suponha que vamos buscar o elemento 68:
![Page 63: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/63.jpg)
63/186
Operação de Busca
● Suponha que vamos buscar o elemento 68:
![Page 64: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/64.jpg)
64/186
Operação de Busca
● Suponha que vamos buscar o elemento 68:
![Page 65: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/65.jpg)
65/186
Operação de Busca
● Suponha que vamos buscar o elemento 68:
![Page 66: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/66.jpg)
66/186
Operação de Busca
● Suponha que vamos buscar o elemento 68:
![Page 67: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/67.jpg)
67/186
Operação de Busca
● Suponha que vamos buscar o elemento 68:
NULL
![Page 68: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/68.jpg)
68/186
Operação de Busca
![Page 69: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/69.jpg)
69/186
Operação de Busca
● As operações de busca na árvore binária podem ser implementadas iterativamente ou com recursão.
![Page 70: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/70.jpg)
70/186
Operação de Busca
● As operações de busca na árvore binária podem ser implementadas iterativamente ou com recursão.
● Vamos ver um exemplo de implementação com recursão.
![Page 71: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/71.jpg)
71/186
Operação de Busca
● As operações de busca na árvore binária podem ser implementadas iterativamente ou com recursão.
● Vamos ver um exemplo de implementação com recursão.
● O modo iterativo ficará como exercício!!!
![Page 72: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/72.jpg)
72/186
Operação de Busca
![Page 73: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/73.jpg)
73/186
Operação de Busca
● A função tem dois casos base:
![Page 74: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/74.jpg)
74/186
Operação de Busca
● A função tem dois casos base:– O elemento alvo está no nó atual da busca ou
![Page 75: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/75.jpg)
75/186
Operação de Busca
● A função tem dois casos base:– O elemento alvo está no nó atual da busca ou– Um nó filho NULL é encontrado.
![Page 76: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/76.jpg)
76/186
Operação de Busca
● A função tem dois casos base:– O elemento alvo está no nó atual da busca ou– Um nó filho NULL é encontrado.
● Portanto, a função retornará:
![Page 77: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/77.jpg)
77/186
Operação de Busca
● A função tem dois casos base:– O elemento alvo está no nó atual da busca ou– Um nó filho NULL é encontrado.
● Portanto, a função retornará:– A referência ao nó que contém o elemento
procurado ou
![Page 78: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/78.jpg)
78/186
Operação de Busca
● A função tem dois casos base:– O elemento alvo está no nó atual da busca ou– Um nó filho NULL é encontrado.
● Portanto, a função retornará:– A referência ao nó que contém o elemento
procurado ou– None.
![Page 79: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/79.jpg)
79/186
Operação de Busca
![Page 80: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/80.jpg)
80/186
Operação de Busca
![Page 81: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/81.jpg)
81/186
Operação de Busca
![Page 82: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/82.jpg)
82/186
Operação de Busca
![Page 83: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/83.jpg)
83/186
Busca por valores Max e Min
![Page 84: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/84.jpg)
84/186
Busca por valores Max e Min
● Uma outra operação de busca comumente executada em uma árvore binária de busca é encontrar os maiores e menores valores (chaves).
![Page 85: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/85.jpg)
85/186
Busca por valores Max e Min
● Uma outra operação de busca comumente executada em uma árvore binária de busca é encontrar os maiores e menores valores (chaves).
● De acordo com a definição de ABB, nós sabemos que o valor mínimo está na raiz ou em algum nó a sua esquerda.
![Page 86: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/86.jpg)
86/186
Busca por valores Max e Min
● Uma outra operação de busca comumente executada em uma árvore binária de busca é encontrar os maiores e menores valores (chaves).
● De acordo com a definição de ABB, nós sabemos que o valor mínimo está na raiz ou em algum nó a sua esquerda.
● Existe alguma maneira de fazer a busca pelo menor elemento se ter a necessidade de fazer a comparação individual?
![Page 87: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/87.jpg)
87/186
Busca por valores Max e Min
● Como achar o menor valor na ABB abaixo?
![Page 88: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/88.jpg)
88/186
Busca por valores Max e Min
● Como achar o menor valor na ABB abaixo?
![Page 89: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/89.jpg)
89/186
Busca por valores Max e Min
![Page 90: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/90.jpg)
90/186
Busca por valores Max e Min
● A ideia é que se o nó raiz contém um elemento a sua esquerda, então esse nó não pode ser o menor.
![Page 91: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/91.jpg)
91/186
Busca por valores Max e Min
● A ideia é que se o nó raiz contém um elemento a sua esquerda, então esse nó não pode ser o menor.
![Page 92: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/92.jpg)
92/186
Busca por valores Max e Min
● A mesma ideia da busca pelo menor valor se aplica à busca do maior valor.
![Page 93: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/93.jpg)
93/186
Busca por valores Max e Min
● Código:
![Page 94: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/94.jpg)
94/186
Inserção
● Na construção de uma ABB, as chaves (elementos) são adicionados um por vez.
● Suponha que vamos inserir a seguinte relação de elementos [60, 25, 100, 35, 17, 80].
![Page 95: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/95.jpg)
95/186
Inserção
![Page 96: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/96.jpg)
96/186
Inserção
Inserir 60
![Page 97: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/97.jpg)
97/186
Inserção
Inserir 60
![Page 98: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/98.jpg)
98/186
Inserção
Inserir 60 Inserir 25
![Page 99: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/99.jpg)
99/186
Inserção
Inserir 60 Inserir 25
![Page 100: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/100.jpg)
100/186
Inserção
Inserir 60 Inserir 25 Inserir 100
![Page 101: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/101.jpg)
101/186
Inserção
Inserir 60 Inserir 25 Inserir 100
![Page 102: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/102.jpg)
102/186
Inserção
Inserir 60 Inserir 25 Inserir 100
Inserir 35
![Page 103: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/103.jpg)
103/186
Inserção
Inserir 60 Inserir 25 Inserir 100
Inserir 35
![Page 104: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/104.jpg)
104/186
Inserção
Inserir 60 Inserir 25 Inserir 100
Inserir 35 Inserir 17
![Page 105: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/105.jpg)
105/186
Inserção
Inserir 60 Inserir 25 Inserir 100
Inserir 35 Inserir 17
![Page 106: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/106.jpg)
106/186
Inserção
Inserir 60 Inserir 25 Inserir 100
Inserir 35 Inserir 17 Inserir 80
![Page 107: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/107.jpg)
107/186
Inserção
Inserir 60 Inserir 25 Inserir 100
Inserir 35 Inserir 17 Inserir 80
![Page 108: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/108.jpg)
108/186
Inserção
![Page 109: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/109.jpg)
109/186
Inserção
● Suponha que vamos inserir a chave 30 na árvore anterior.
![Page 110: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/110.jpg)
110/186
Inserção
● Suponha que vamos inserir a chave 30 na árvore anterior.
● O que aconteceria se nós usarmos o função _bstSearch( ) e pesquisarmos pelo nó 30?
![Page 111: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/111.jpg)
111/186
Inserção
● Suponha que vamos inserir a chave 30 na árvore anterior.
● O que aconteceria se nós usarmos o função _bstSearch( ) e pesquisarmos pelo nó 30?
![Page 112: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/112.jpg)
112/186
Inserção
● Suponha que vamos inserir a chave 30 na árvore anterior.
● O que aconteceria se nós usarmos o função _bstSearch( ) e pesquisarmos pelo nó 30?
A busca não localizará o nó 30.
![Page 113: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/113.jpg)
113/186
Inserção
● Suponha que vamos inserir a chave 30 na árvore anterior.
● O que aconteceria se nós usarmos o função _bstSearch( ) e pesquisarmos pelo nó 30?
A busca não localizará o nó 30.
Porém, este será o lugar correto onde a nova chave deverá ser inserida.
![Page 114: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/114.jpg)
114/186
Inserção
● Código para inserir um nó na ABB:
![Page 115: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/115.jpg)
115/186
Inserção
● Código para inserir um nó na ABB:
![Page 116: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/116.jpg)
116/186
Inserção
![Page 117: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/117.jpg)
117/186
Inserção
● O método deve pesquisar a localização do novo nó.
![Page 118: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/118.jpg)
118/186
Inserção
● O método deve pesquisar a localização do novo nó.
![Page 119: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/119.jpg)
119/186
Inserção
● O método deve pesquisar a localização do novo nó.
![Page 120: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/120.jpg)
120/186
Inserção
● O método deve pesquisar a localização do novo nó.
![Page 121: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/121.jpg)
121/186
Inserção
![Page 122: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/122.jpg)
122/186
Inserção
● O caso base é alcançado quando uma subárvore vazia é encontrada.
![Page 123: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/123.jpg)
123/186
Inserção
● O caso base é alcançado quando uma subárvore vazia é encontrada.
![Page 124: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/124.jpg)
124/186
Inserção
![Page 125: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/125.jpg)
125/186
Inserção
● Neste momento, um novo nó da árvore é criado e seus valores são atualizados.
![Page 126: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/126.jpg)
126/186
Inserção
● Neste momento, um novo nó da árvore é criado e seus valores são atualizados.
![Page 127: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/127.jpg)
127/186
Inserção
![Page 128: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/128.jpg)
128/186
Inserção
● A recursão continua...
![Page 129: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/129.jpg)
129/186
Inserção
● A recursão continua...
![Page 130: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/130.jpg)
130/186
Inserção
● A recursão continua...
![Page 131: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/131.jpg)
131/186
Inserção
● Até alcançar o nó raiz.
![Page 132: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/132.jpg)
132/186
Remoção
![Page 133: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/133.jpg)
133/186
Remoção
● A operação de remoção é um pouco mais complicada do que as operações de busca ou inserção.
![Page 134: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/134.jpg)
134/186
Remoção
● A operação de remoção é um pouco mais complicada do que as operações de busca ou inserção.
● Operações envolvidas na remoção:
![Page 135: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/135.jpg)
135/186
Remoção
● A operação de remoção é um pouco mais complicada do que as operações de busca ou inserção.
● Operações envolvidas na remoção:– Localizar o elemento.
![Page 136: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/136.jpg)
136/186
Remoção
● A operação de remoção é um pouco mais complicada do que as operações de busca ou inserção.
● Operações envolvidas na remoção:– Localizar o elemento.– Remover o nó da árvore.
![Page 137: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/137.jpg)
137/186
Remoção
● A operação de remoção é um pouco mais complicada do que as operações de busca ou inserção.
● Operações envolvidas na remoção:– Localizar o elemento.– Remover o nó da árvore.– Os nós restantes devem preservar a propriedade
de ABB.
![Page 138: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/138.jpg)
138/186
Remoção
● Existem três casos a serem considerados antes de remover um nó:– O nó é uma folha.– O nó tem um único filho.– O nó tem dois filhos.
![Page 139: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/139.jpg)
139/186
Remoção
![Page 140: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/140.jpg)
140/186
Remoção
● Remoção de nó folha
![Page 141: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/141.jpg)
141/186
Remoção
● Remoção de nó folha– É o caso mais simples.
![Page 142: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/142.jpg)
142/186
Remoção
● Remoção de nó folha– É o caso mais simples.– Depois de encontrar o nó, basta removê-lo da ABB.
![Page 143: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/143.jpg)
143/186
Remoção
● Remoção de nó folha– É o caso mais simples.– Depois de encontrar o nó, basta removê-lo da ABB.
![Page 144: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/144.jpg)
144/186
Remoção
● Remoção de nó folha– É o caso mais simples.– Depois de encontrar o nó, basta removê-lo da ABB.
![Page 145: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/145.jpg)
145/186
Remoção
![Page 146: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/146.jpg)
146/186
Remoção
● Remover nó interior com 1 filho
![Page 147: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/147.jpg)
147/186
Remoção
● Remover nó interior com 1 filho
![Page 148: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/148.jpg)
148/186
Remoção
● Remover nó interior com 1 filho– Como seria remover o nó 41?
![Page 149: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/149.jpg)
149/186
Remoção
![Page 150: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/150.jpg)
150/186
Remoção
![Page 151: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/151.jpg)
151/186
Remoção
● Bataria que o nó anterior (12) apontasse para NULL?
![Page 152: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/152.jpg)
152/186
Remoção
● Bataria que o nó anterior (12) apontasse para NULL?
![Page 153: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/153.jpg)
153/186
Remoção
![Page 154: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/154.jpg)
154/186
Remoção
● Como o nó 41 tem apenas 1 único filho, então todos os seus descendentes têm chaves maiores do que o nó 12.
![Page 155: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/155.jpg)
155/186
Remoção
● Como o nó 41 tem apenas 1 único filho, então todos os seus descendentes têm chaves maiores do que o nó 12.
![Page 156: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/156.jpg)
156/186
Remoção
● Como o nó 41 tem apenas 1 único filho, então todos os seus descendentes têm chaves maiores do que o nó 12.
● Assim, basta ligar o nó 12 ao filho do nó 41.
![Page 157: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/157.jpg)
157/186
Remoção
● Como o nó 41 tem apenas 1 único filho, então todos os seus descendentes têm chaves maiores do que o nó 12.
● Assim, basta ligar o nó 12 ao filho do nó 41.
![Page 158: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/158.jpg)
158/186
Remoção
![Page 159: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/159.jpg)
159/186
Remoção
● Remover nó interior com 2 filhos
![Page 160: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/160.jpg)
160/186
Remoção
● Remover nó interior com 2 filhos– Essa é a sua situação mais difícil.
![Page 161: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/161.jpg)
161/186
Remoção
● Remover nó interior com 2 filhos– Essa é a sua situação mais difícil.– O que aconteceria na árvore para remover o nó
12?
![Page 162: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/162.jpg)
162/186
Remoção
● Remover nó interior com 2 filhos– Essa é a sua situação mais difícil.– O que aconteceria na árvore para remover o nó
12?
![Page 163: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/163.jpg)
163/186
Remoção
● Remover nó interior com 2 filhos– Essa é a sua situação mais difícil.– O que aconteceria na árvore para remover o nó
12?
![Page 164: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/164.jpg)
164/186
Remoção
![Page 165: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/165.jpg)
165/186
Remoção
● O resultado da remoção anterior seria a árvore abaixo.
![Page 166: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/166.jpg)
166/186
Remoção
● O resultado da remoção anterior seria a árvore abaixo.
![Page 167: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/167.jpg)
167/186
Remoção
● O resultado da remoção anterior seria a árvore abaixo.
● O nó 41 teria dois filhos à esquerda.
![Page 168: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/168.jpg)
168/186
Remoção
![Page 169: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/169.jpg)
169/186
Remoção
● Remover o nó interior com dois filhos:
![Page 170: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/170.jpg)
170/186
Remoção
● Remover o nó interior com dois filhos:– Encontrar o sucessor lógico, S, do nó que será
removido N.
![Page 171: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/171.jpg)
171/186
Remoção
● Remover o nó interior com dois filhos:– Encontrar o sucessor lógico, S, do nó que será
removido N.– Copiar a chave do nó S para N.
![Page 172: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/172.jpg)
172/186
Remoção
● Remover o nó interior com dois filhos:– Encontrar o sucessor lógico, S, do nó que será
removido N.– Copiar a chave do nó S para N.– Remover o nó S da árvore.
![Page 173: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/173.jpg)
173/186
Remoção
● Remover o nó interior com dois filhos:– Encontrar o sucessor lógico, S, do nó que será
removido N.– Copiar a chave do nó S para N.– Remover o nó S da árvore.
![Page 174: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/174.jpg)
174/186
Remoção
![Page 175: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/175.jpg)
175/186
Remoção
● A dúvida que surge é:
![Page 176: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/176.jpg)
176/186
Remoção
● A dúvida que surge é:– Como encontrar o sucessor de um nó e onde ele
estará localizado na árvore?
![Page 177: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/177.jpg)
177/186
Remoção
● A dúvida que surge é:– Como encontrar o sucessor de um nó e onde ele
estará localizado na árvore?– O sucessor é o menor elemento dos elementos que
sejam maiores que o nó que será removido.
![Page 178: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/178.jpg)
178/186
Remoção
● A dúvida que surge é:– Como encontrar o sucessor de um nó e onde ele
estará localizado na árvore?– O sucessor é o menor elemento dos elementos que
sejam maiores que o nó que será removido.– De acordo com as propriedades de uma ABB, o
sucessor de um nó é o seu pai ou algum nó que esteja a sua direita.
![Page 179: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/179.jpg)
179/186
Remoção
● Passo 1– Achar o nó N e o seu sucessor S.
![Page 180: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/180.jpg)
180/186
Remoção
● Passo 2– Copiar o nó S para N.
![Page 181: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/181.jpg)
181/186
Remoção
● Passo 3– Remova o sucessor S que estava à direita.
![Page 182: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/182.jpg)
182/186
Remoção
● Passo 4– Remova o sucessor S que estava à direita.
![Page 183: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/183.jpg)
183/186
Eficiência das ABB
![Page 184: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/184.jpg)
184/186
Exercícios
● Considere a árvore binária de busca abaixo e mostre o resultado após deletar cada uma das seguintes chaves: 14, 52 e 39.
![Page 185: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/185.jpg)
185/186
Exercícios
● Discuta a avaliação entre uma implementação de uma lista ordenada e a implementação de uma árvore binária de busca.
● Considere que as chaves 50, 30, 70, 20, 40, 60, 80, 15, 25, 35, 45 e 36 são inseridas, nesta ordem, numa árvore de busca inicialmente vazia. Desenha a árvore resultante.
● O que aconteceria se o nó 30 fosse removido da árvore construída no exercício anterior? Desenhe essa árvore resultante.
![Page 186: Árvores Binárias de Busca - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/05/aula-arvores-busca.pdf · 10/186 Introdução Busca (pesquisa) de dados em texto é uma operação](https://reader034.vdocuments.net/reader034/viewer/2022050508/5f98fd3a157cb841bd2992c9/html5/thumbnails/186.jpg)
186/186
Exercícios
● Escreva uma função em Python para verificar se uma árvore é uma ABB.
● Escreva uma função em Python para verificar se duas ABBs são iguais.