Árvores Binárias de Pesquisa
(ABP)
Prof. Luiz José Hoffmann Filho
[email protected]
Roteiro
• Definição de ABP
• Operações sobre ABP
• Análise de Complexidade de ABPs
Roteiro
• Definição de ABP
• Operações sobre ABP
• Análise de Complexidade de ABPs
Definição
• Uma árvore binária de pesquisa (ou de
busca) obedece à seguinte propriedade:
o 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].
Roteiro
• Definição de ABP
• Operações sobre ABP
• Análise de Complexidade de ABPs
Operações sobre ABP
• As principais operações são:
o Consulta;
o Inserção;
o Remoção.
• As operações inserção e remoção devem ser
realizadas respeitando a propriedade das ABP.
Consulta de nós (1)
• Consulta com sucesso.
• Exemplo: Na ABP abaixo, consultar os dados
referenciados pelo nó de valor 3.
4
4
1
6
3
2
5
1
7
3
Consulta de nós (2)
• Consulta sem sucesso.
• Exemplo: Na ABP abaixo, consultar os dados
referenciados pelo nó de valor 9.
4
4
1
6
3
2
5
6
7
7
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.
o Exemplo 1: Inserir os nós 14 e 15.
o Exemplo 2: Inserir os nós 15 e 14.
raiz 10
raiz 10
16
4
2
1
8
3
7
2
12
9
Exemplo 1
11
16
4
1
14
15
8
3
7
12
9
Exemplo 2
11
15
14
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
Remoção de nós
• Três casos distintos a serem tratados: nó a ser
removido tem zero, um ou dois filhos.
Remoção de nós – Caso 1
• Caso 1: nodo a ser removido tem zero filhos
o Simplesmente remove o nodo
raiz 10
raiz 10
16
4
2
1
8
3
7
2
12
9
11
16
4
1
8
3
7
12
9
Após a remoção
Remoção de nós – Caso 2
• Caso 2: nodo a ser removido tem um filho
o
Substitui o nodo por seu filho
raiz 10
raiz 10
16
4
2
1
8
3
7
2
12
9
11
16
4
1
8
3
7
11
9
Após a remoção
Remoção de nós – Caso 3
• Caso 3: nodo a ser removido tem dois filhos
Substitui o nodo por seu sucessor
o
raiz 10
raiz 10
16
4
2
1
8
3
7
nodo sucessor
2
12
9
11
16
7
1
8
3
11
9
Após a remoção
Pergunta: Poderíamos ter feito a substituição pelo nodo antecessor?
Nodo Sucessor e Antecessor
• Considerando que as chaves sejam todas
distintas:
o O sucessor de um nodo x é o nodo y, tal que
chave[y] é o menor valor maior que chave[x].
o O antecessor de um nodo x é o nodo y, tal que
chave[y] é o maior valor menor que chave[x].
Roteiro
• Definição de ABP
• Operações sobre ABP
• Análise de Complexidade de ABPs
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.
4, 6, 2, 5, 1, 7, 3
1, 2, 3, 4, 5, 6, 7
Figura 1
Figura 2
Análise de complexidade (2)
• Complexidade de uma busca sem sucesso
o Melhor Caso:
• Árvore binária perfeita: O(log n)  Figura 1
• Árvore não balanceada: O(n)  Figura 2
4, 6, 2, 5, 1, 7, 3
1, 2, 3, 4, 5, 6, 7
Figura 1
Figura 2
Download

PPT