Sie sind auf Seite 1von 22

rvores

de Pesquisa Binrias
Centro de Inform-ca Universidade Federal de Pernambuco Sistemas de Informao Vinicius Cardoso Garcia vcg@cin.ufpe.br

2011 Vinicius Cardoso Garcia

Introduo
Uma rvore de pesquisa binria so estruturas de dados que admitem operaes em conjuntos dinmicos, como:
Search Minimum Maximum Predecessor Sucessor Insert Delete
Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

Operaes Bsicas X Custos


De forma geral, as operaes bsicas em uma rvore binria so proporcionais a sua altura
Para uma rvore binria completa:
Custo em tempo (lgn)

Para uma rvore que uma cadeia linear de ns:


Custo em tempo (n)

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

rvore Binria de Pesquisa


Uma rvore binria T em que cada nodo >
interno v de T armazena um elemento (k, x) que:
As chaves armazenadas na subrvore esquerda de v so menores ou iguais a k As chaves armazenadas na subrvore direita de v so maiores ou iguais a k 6
<

2 1 4 =
8 9

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

rvore Binria de Pesquisa


Trocando em midos
Seja x um nodo de uma ABP. Se y o nodo raiz da sae de x, ento chave[y] chave[x]. Se y o nodo raiz da sad de x, ento chave[y] > chave[x].

Concre-zao de um dicionrio ordenado


Representao hierrquica da ordenao de suas chaves por meio da relao pai e lho
Um caminhamento interxado dos nodos de uma rvore binria de pesquisa T dever visitar as chaves em ordem no-decrescente
Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

Operaes sobre ABB


As principais operaes so: Pesquisa
Insero Remoo

As operaes insero e remoo devem ser realizadas respeitando a propriedade das ABP.

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

Pesquisa
Pesquisa com sucesso. Exemplo: Na ABP abaixo, pesquisar os dados referenciados pelo n de valor 3.

3 2

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

Pesquisa
Pesquisa sem sucesso. Exemplo: Na ABP abaixo, pesquisa os dados referenciados pelo n de valor 9.

3 2

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

Pesquisa
Para pesquisar por uma chave k, devemos traar um caminhamento comeando da raiz O prximo nodo visitado depende do resultado da comparao de k com a chave do nodo corrente Se alcanarmos uma folha, a chave no encontrada e retornamos null Exemplo: nd(4)
Call TreeSearch(4, root) Algorithm TreeSearch(k, v) if T.isExternal (v) return v if k < key(v) return TreeSearch(k, T.left(v)) else if k = key(v) return v else { k > key(v) } return TreeSearch(k, T.right(v))

<

2 1

6 9 4 =
8

Logo o custo em tempo ser O (h), onde h a altura ou profundidade da rvore

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

Funes de Mnimo e Mximo

Funes de Mnimo e Mximo Funes de Mnimo e Mximo

A chave mnima em uma rvore binria ser o n A chave mnima em uma rvore binria ser chave mnima em uma rvore binria ser o o no A mais a esquerda. esquerda. mais a esquerda. nodo mais a

A chave mxima em uma rvore binria ser o o n A chave mxima em uma rvore binria ser o n A chave mxima em uma rvore binria ser nodo mais a direita. mais a direita. mais a direita.

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

10

Analisando As Funes Max. e Min.


Para uma rvore binria com altura (ou profundidade) h
As funes de pesquisa de mximo e mnimo tero custo em tempo de O(h).

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

11

Insero
Esta operao iden-ca a posio correta e insere. A ordem em que os valores so inseridos relevante.
Exemplo 1: Inserir os ns 14 e 15. Exemplo 2: Inserir os ns 15 e 14.
raiz 10 4 16 8 3 7 9 12 11 14 15 1 4 raiz 10 16 8 3 7 9 12 11 14
12

2
1

15

Exemplo 1

Exemplo 2
Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

Insero
Exemplo: Construir uma ABP a par-r da seguinte lista de valores: 4,1,6,5,3,2 e 7.
4

3 2

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

13

Insero
Para realizar a operao insert(k, o), devemos buscar pela chave k (usando o TreeSearch) Assumimos que k no est ainda na rvore, e tomamos w como a folha resultante da busca Inserimos k no nodo w e expandimos w para um nodo interno Exemplo: insert 5
<

2 1 6 9 4

>
>
w
6 8

2 1 4 5 8

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

14

Remoo
Trs casos dis-ntos a serem tratados: n a ser removido tem zero, um ou dois lhos.

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

15

Remoo Caso 1
Caso 1: nodo a ser removido tem zero lhos
Simplesmente remove o nodo
raiz 10 4 16 8 3 7 9 11 12 1 4 raiz 10 16 8 3 7 9 12

2
1

Aps a remoo

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

16

Remoo - Caso 2
Caso 2: nodo a ser removido tem um lho

Subs-tui o nodo por seu lho


raiz 10 4 16 8 3 7 9 12 11 1 4 raiz 10 16 8 3 7 9 11

2
1

Aps a remoo

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

17

Remoo Caso 3
Caso 3: nodo a ser removido tem dois lhos

Subs-tui o nodo por seu sucessor


raiz 10 4 16 8 3 7 9 12 11 1 7 raiz 10 16 8 3 9
Aps a remoo

2
1

11

nodo sucessor

Pergunta: Poderamos ter feito a substituio pelo nodo antecessor?


Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

18

Nodo Sucessor e Antecessor


Considerando que as chaves sejam todas dis-ntas:
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].
Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

19

Anlise de complexidade
Com relao a pesquisa Depende da quan-dade de ns internos que eu precise visitar. Qual a complexidade de uma busca com sucesso?
Depende da ordem de insero dos ns ao construir uma ABP. 4, 6, 2, 5, 1, 7, 3 1, 2, 3, 4, 5, 6, 7

Figura 1 Figura 2
Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

20

Anlise de complexidade
Complexidade de uma busca sem sucesso
Melhor Caso:
rvore binria perfeita: O(log n) Figura 1 rvore no balanceada: O(n) Figura 2
4, 6, 2, 5, 1, 7, 3 1, 2, 3, 4, 5, 6, 7

Figura 1 Figura 2

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

21

ASvidades Complementares
Leitura do captulo 12 do livro do Cormen Implementar uma classe rvore de pesquisa binria com as funes search, maximum, minimum, sucessor, predecessor, inserir e deletar.

Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia

22

Das könnte Ihnen auch gefallen