Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva [email protected].

18
Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva [email protected]

Transcript of Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva [email protected].

Page 1: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Árvores Binárias de Pesquisa (ABP)

Prof. Alexandre Parra Carneiro da Silva

[email protected]

Page 2: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Roteiro

Definição de ABP

Operações sobre ABP

Análise de Complexidade de ABPs

Page 3: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Roteiro

Definição de ABP

Operações sobre ABP

Análise de Complexidade de ABPs

Page 4: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Definição

Uma árvore binária de pesquisa (ou de busca) obedece à seguinte propriedade: Seja x um nó de uma ABP. Se y é o nó raiz

da sae de x, então chave[y] chave[x]. Se y é o nó raiz da sad de x, então chave[y] > chave[x].

Page 5: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Roteiro

Definição de ABP

Operações sobre ABP

Análise de Complexidade de ABPs

Page 6: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Operações sobre ABP

As principais operações são: Consulta; Inserção; Remoção.

As operações inserção e remoção devem ser realizadas respeitando a propriedade das ABP.

Page 7: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Consulta de nós (1)

Consulta com sucesso. Exemplo: Na ABP abaixo, consultar os dados

referenciados pelo nó de valor 3.

4

1 6

3

2

5 7

4

1

3

Page 8: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Consulta de nós (2)

Consulta sem sucesso. Exemplo: Na ABP abaixo, consultar os dados

referenciados pelo nó de valor 9.

4

1 6

3

2

5 7

4

6

7

Page 9: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Inserção de nós (1) Esta operação identifica a posição correta e insere. A ordem em que os valores são inseridos é

relevante. Exemplo 1: Inserir os nós 14 e 15. Exemplo 2: Inserir os nós 15 e 14.

14 15

14

12

16

10

9 1 7

2 8

4

3

raiz

11 15

12

16

10

9 1 7

2 8

4

3

raiz

11

Exemplo 1 Exemplo 2

Page 10: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Inserção de nós (2) Exemplo: Construir uma ABP a partir da seguinte

lista de valores: 4,1,6,5,3,2 e 7.

4

1 6

3

2

5 7

Page 11: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Remoção de nós

Três casos distintos a serem tratados: nó a ser removido tem zero, um ou dois filhos.

Page 12: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Remoção de nós – Caso 1

Caso 1: nodo a ser removido tem zero filhos Simplesmente remove o nodo

12

16

10

9 1 7

2 8

4

3

raiz

11

12

16

10 raiz

9 1 7

2 8

4

3

Após a remoção

Page 13: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Remoção de nós – Caso 2

Caso 2: nodo a ser removido tem um filho Substitui o nodo por seu filho

12

16

10

9 1 7

2 8

4

3

raiz

11

11

16

10 raiz

9 1 7

2 8

4

3

Após a remoção

Page 14: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Remoção de nós – Caso 3

Caso 3: nodo a ser removido tem dois filhos Substitui o nodo por seu sucessor

11

16

10 raiz

9 1

2 8

7

3

Após a remoção

16

10

9 1 7

2 8

4

3

raiz

11

12

nodo sucessor

Pergunta: Poderíamos ter feito a substituição pelo nodo antecessor?

Page 15: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Nodo Sucessor e Antecessor

Considerando que as chaves sejam todas distintas: O sucessor de um nodo x é o nodo y, tal

que chave[y] é o menor valor maior que chave[x].

O antecessor de um nodo x é o nodo y, tal que chave[y] é o maior valor menor que chave[x].

Page 16: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Roteiro

Definição de ABP

Operações sobre ABP

Análise de Complexidade de ABPs

Page 17: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Análise de complexidade (1) Com relação a pesquisa Depende da quantidade de nós

internos que eu precise visitar. Qual é a complexidade de uma busca com sucesso?

Depende da ordem de inserção dos nós ao construir uma ABP.

Figura 1

Figura 2

4, 6, 2, 5, 1, 7, 3 1, 2, 3, 4, 5, 6, 7

Page 18: Árvores Binárias de Pesquisa (ABP) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com.

Análise de complexidade (2) Complexidade de uma busca sem sucesso

Melhor Caso: Árvore binária perfeita: O(log n) Figura 1 Árvore não balanceada: O(n) Figura 2

Figura 1

Figura 2

4, 6, 2, 5, 1, 7, 3 1, 2, 3, 4, 5, 6, 7