Beruflich Dokumente
Kultur Dokumente
de
Pesquisa
Binrias
Centro
de
Inform-ca
Universidade
Federal
de
Pernambuco
Sistemas
de
Informao
Vinicius
Cardoso
Garcia
vcg@cin.ufpe.br
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
Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia
Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia
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
Algoritmos e Estrutura de Dados rvores de Pesquisa Binria 2011 Vinicius Cardoso Garcia
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
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
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
2
1
11
nodo sucessor
18
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