Árvores binárias de pesquisa (abp)
Post on 31-Dec-2015
52 Views
Preview:
DESCRIPTION
TRANSCRIPT
Á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
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: 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: Consulta; Inserçã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
1 6
3
2
5 7
4
1
3
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
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
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 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
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
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?
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].
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.
Figura 1
Figura 2
4, 6, 2, 5, 1, 7, 3 1, 2, 3, 4, 5, 6, 7
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
top related