Академический Документы
Профессиональный Документы
Культура Документы
Propriedades
Se y est na subrvore esquerda de x ento
chave(y) chave(x)
Se y est na subrvore direitaa de x ento
chave(y) chave(x)
Aula 13
rvores de Busca Balanceadas
Stefanes
Prof. Marco Aurelio
marco em dct.ufms.br
www.dct.ufms.br/ marco
7
8
Aula 13 p. 1
Aula 13 p. 3
Busca(T, k )
Comece na raiz e compare k com a chave do n corrente x
1. Se a chave encontrada pare
2. Se a k < chave(x) busque na subrvore esquerda de x
chavedados pai
esq
dir
Aula 13 p. 2
Aula 13 p. 4
Exemplo de um rvore RN
26
Busca O(h)
Incluso O(h)
17
Remoo O(h)
41
NIL
Mnimo O(h)
30
14
Mximo O(h)
NIL
NIL
47
NIL
NIL
Predecessor O(h)
53
38
Sucessor O(h)
NIL
NIL
NIL
NIL
Aula 13 p. 5
Aula 13 p. 7
Lema
rvore Rubro-Negra
Variao da rvore binria de busca (balanceada)
Aula 13 p. 8
Lema
Rotao_Esq(T, x)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
Lema
y = Dir[x]
Dir[x] = Esq[y]
if Esq[y] 6= N IL then
p[Esq[y]] = x
p[y] = p[x]
if p[x] = N IL then
root[T ] = y
else
if x = Esq[p[y]] then
Esq[p[y]] = y
else
Dir[p[y]] = y
Esq[y] = x
p[x] = y
Aula 13 p. 9
Aula 13 p. 11
Rotaes
Idia
Rotao_Dir(T, y )
x
2. Pinte o n de vermelho
3. Restaure as propriedades rubro-negras
Rotao_Esq(T, x)
Aula 13 p. 10
Aula 13 p. 12
Caso 1: Se y rubro
cor[y]=negro
cor[p[x]]=negro
cor[p[p[x]]]=rubro
11
y
14
14
15
15
4
Aula 13 p. 13
Aula 13 p. 13
Caso 2: Se y negro
x filho direito
x = p[x]
Rotao_Esq(T, x)
11
7
y
14
11
x
1
15
14
15
4
Aula 13 p. 13
Aula 13 p. 13
Insere_RN(T, x)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
Insere(T, x)
cor[x] = rubro
while x 6= root[T ] e cor[p[x]] = rubro do
if p[x] = Esq[p[p[x]]] then
y = Dir[p[p[x]]]
if cor[y] = rubro then
cor[p[x]] = negro
Caso 1
cor[y] = negro
cor[p[p[x]]] =rubro
x = p[p[x]]
else
if x = Dir[p[x]] then
x = p[x]
Caso 2
Rotacao_Esq(T, x)
cor[p[x]] = negro q Caso 3
cor[p[p[x]]] = rubro
Rotacao_Dir(T, p[p[x]])
else
simtrico ao anterior
cor[root[T ]] = negro
Aula 13 p. 14
Anlise da Insero
Aula 13 p. 16
Restaurar propriedades
O lao se repete se somente o Caso 1 executado
Caso 2 seguido sempre do Caso 3
Caso 3 resolve o problema
O nmero de vezes que o lao executado O(lg n)
Tempo total O(lg n)
Aula 13 p. 15
Aula 13 p. 17