180 likes | 320 Views
Á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.
E N D
Á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.
Consulta de nós (2) • Consulta semsucesso. • Exemplo: Na ABP abaixo, consultar os dados referenciados pelo nó de valor 9.
raiz raiz 10 10 16 16 4 4 8 8 2 2 12 12 11 11 15 14 15 14 3 3 7 7 1 1 9 9 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. 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.
Remoção de nós • Três casos distintos a serem tratados: nó a ser removido tem zero, um ou dois filhos.
raiz raiz 10 10 16 16 4 4 8 8 2 2 12 12 3 3 7 7 1 1 9 9 11 Após a remoção Remoção de nós – Caso 1 • Caso 1: nodo a ser removido tem zero filhos • Simplesmente remove o nodo
raiz raiz 10 10 16 16 4 4 8 8 2 2 11 12 3 3 7 7 1 1 9 9 11 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
raiz raiz 10 10 16 16 4 7 11 8 8 2 2 12 3 3 7 1 1 9 9 11 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 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
4, 6, 2, 5, 1, 7, 3 1, 2, 3, 4, 5, 6, 7 Figura 1 Figura 2 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 aoconstruir 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 • Melhor Caso: • Árvore binária perfeita: O(log n) Figura 1 • Árvore não balanceada: O(n) Figura 2