Вы находитесь на странице: 1из 40

rvores Rubro-Negras

Letcia Rodrigues Bueno


UFABC
rvores Rubro-Negras (Red-Black Trees): Introduo
Objetivo: garantir que operaes bsicas demorem
O(lg n) no pior caso.
rvores Rubro-Negras (Red-Black Trees): Introduo
Objetivo: garantir que operaes bsicas demorem
O(lg n) no pior caso.
rvores rubro-negras: rvores binrias de busca com
um bit extra por n para cor vermelha ou preta;
rvores Rubro-Negras (Red-Black Trees): Introduo
Objetivo: garantir que operaes bsicas demorem
O(lg n) no pior caso.
rvores rubro-negras: rvores binrias de busca com
um bit extra por n para cor vermelha ou preta;
Altura: no mximo 2 lg(n + 1) onde n nmero de ns;
rvores Rubro-Negras (Red-Black Trees): Introduo
Objetivo: garantir que operaes bsicas demorem
O(lg n) no pior caso.
rvores rubro-negras: rvores binrias de busca com
um bit extra por n para cor vermelha ou preta;
Altura: no mximo 2 lg(n + 1) onde n nmero de ns;
Insero e remoo executadas em O(lg n).
rvores Rubro-Negras (Red-Black Trees): Introduo
Objetivo: garantir que operaes bsicas demorem
O(lg n) no pior caso.
rvores rubro-negras: rvores binrias de busca com
um bit extra por n para cor vermelha ou preta;
Altura: no mximo 2 lg(n + 1) onde n nmero de ns;
Insero e remoo executadas em O(lg n).
Nenhum caminho maior do que duas vezes o
comprimento de qualquer outro caminho;
Comparao entre rvores Balanceadas
Completas
h = 1 + log
2
n
h 1 + log
2
n
1 + log
2
n h 2 log
2
(n + 1)
AVLs
h
1
log
2
a
log
2
(n + 1) + log
a

5
where a = (
1 +

5
2
)
RNs
Arvores Balanceadas
rvores Rubro-Negras: Denio
Uma rvore rubro-negra uma ABB que obedece s
propriedades:
rvores Rubro-Negras: Denio
Uma rvore rubro-negra uma ABB que obedece s
propriedades:
1. Todo n externo preto;
rvores Rubro-Negras: Denio
Uma rvore rubro-negra uma ABB que obedece s
propriedades:
1. Todo n externo preto;
2. Para cada n, todos os caminhos de um n at as folhas
contm mesmo nmero de ns pretos;
rvores Rubro-Negras: Denio
Uma rvore rubro-negra uma ABB que obedece s
propriedades:
1. Todo n externo preto;
2. Para cada n, todos os caminhos de um n at as folhas
contm mesmo nmero de ns pretos;
3. Se um n vermelho, ento ambos lhos so pretos.
Exemplo de rvore Rubro-Negra
29
20 44
50
24 17
22 13 26
33
41
31
42
38 23
19
10
6
15
18
rvores Rubro-Negras: Insero
N inserido q rubro. Possibilidades:
Caso 1: v negro
Exemplo:
rvores Rubro-Negras: Insero
N inserido q rubro. Possibilidades:
Caso 1: v negro
Exemplo:
v
q
rvores Rubro-Negras: Insero
N inserido q rubro. Possibilidades:
Caso 2: v rubro. Ento, w (pai de v) preto.
Caso 2.1: t rubro;
Alteramos a cor de v, t , w
Exemplo:
rvores Rubro-Negras: Insero
N inserido q rubro. Possibilidades:
Caso 2: v rubro. Ento, w (pai de v) preto.
Caso 2.1: t rubro;
Alteramos a cor de v, t , w
Exemplo:
w
v t
q
rvores Rubro-Negras: Insero
N inserido q rubro. Possibilidades:
Caso 2: v rubro. Ento, w (pai de v) preto.
Caso 2.1: t rubro;
Alteramos a cor de v, t , w
Exemplo:
w
v t
q
Rotaes Caso 2.2: t preto
Caso 2.2.1: q lho esquerdo de v e v lho esquerdo de w.
Altera cor de v e w.
t
t
t t
w
v
q
t
z
y u
rotacao
direita
Rotaes Caso 2.2: t preto
Caso 2.2.1: q lho esquerdo de v e v lho esquerdo de w.
Altera cor de v e w.
t
t
t t
w
v
q
t
z
y u
rotacao
direita
t t t t
w
v
q
t z
y u
Rotaes Caso 2.2: t preto
Caso 2.2.2: q lho direito de v e v lho esquerdo de w.
Altera cor de q e w.
t
t
t t
w
v
q
t
z
y u
rotacao
direita
dupla
Rotaes Caso 2.2: t preto
Caso 2.2.2: q lho direito de v e v lho esquerdo de w.
Altera cor de q e w.
t
t
t t
w
v
q
t
z
y u
rotacao
direita
dupla
t t t t
w
q
v
t y
u z
Rotaes Caso 2.2: t preto
Caso 2.2.3: q lho direito de v e v lho direito de w.
Altera cor de v e w.
t
t
t t
w
v
q
t
z
y u
rotacao
esquerda
Rotaes Caso 2.2: t preto
Caso 2.2.3: q lho direito de v e v lho direito de w.
Altera cor de v e w.
t
t
t t
w
v
q
t
z
y u
rotacao
esquerda
t t t t
q
v
w
y
u
z t
Rotaes Caso 2.2: t preto
Caso 2.2.4: q lho esquerdo de v e v lho direito de w.
Altera cor de q e w.
t
t
t t
w
v
q
t
z
y u
rotacao
dupla
esquerda
Rotaes Caso 2.2: t preto
Caso 2.2.4: q lho esquerdo de v e v lho direito de w.
Altera cor de q e w.
t
t
t t
w
v
q
t
z
y u
rotacao
dupla
esquerda
t t t t
v
q
w
z
y
u t
rvores Rubro-Negras: algoritmo para insero
1 InsereRN(x, ptv, ptw, ptr , a):
2 se ptv = externo ento
3 ocupar (ptv)
4 ptv .esq ptv .dir externo
5 ptv .chave x; ptv .cor R
6 se ptraiz = externo ento
7 ptv .cor N; ptraiz ptv
8 seno se x < ptw .chave ento
9 ptw .esq ptv
10 seno ptw .dir ptv
11 seno se x = ptv .chave ento
12 se x < ptv .chave ento ptq ptv .esq
13 seno ptq ptv .dir
14 InsereRN(x, ptq, ptv, ptw, a)
15 se a = 1 ento rota(ptq, ptv, ptw, ptr , a)
16 seno se a = 0 ento a = 1
17 seno Insero Invlida
Comparao: rvores AVL e rubro-negras
Comparao: rvores AVL e rubro-negras
1. rvores AVL:
Comparao: rvores AVL e rubro-negras
1. rvores AVL:
1.1 primeira rvore binria de busca com balanceamento
proposta por Adelson-Velskii e Landis em 1962;
Comparao: rvores AVL e rubro-negras
1. rvores AVL:
1.1 primeira rvore binria de busca com balanceamento
proposta por Adelson-Velskii e Landis em 1962;
1.2 altura: entre log
2
(n + 1) e 1.4404log
2
(n + 2) 0.328,
portanto, O(logn);
Comparao: rvores AVL e rubro-negras
1. rvores AVL:
1.1 primeira rvore binria de busca com balanceamento
proposta por Adelson-Velskii e Landis em 1962;
1.2 altura: entre log
2
(n + 1) e 1.4404log
2
(n + 2) 0.328,
portanto, O(logn);
2. rvores rubro-negras:
Comparao: rvores AVL e rubro-negras
1. rvores AVL:
1.1 primeira rvore binria de busca com balanceamento
proposta por Adelson-Velskii e Landis em 1962;
1.2 altura: entre log
2
(n + 1) e 1.4404log
2
(n + 2) 0.328,
portanto, O(logn);
2. rvores rubro-negras:
2.1 proposta por Guibas e Sedgewick em 1978;
Comparao: rvores AVL e rubro-negras
1. rvores AVL:
1.1 primeira rvore binria de busca com balanceamento
proposta por Adelson-Velskii e Landis em 1962;
1.2 altura: entre log
2
(n + 1) e 1.4404log
2
(n + 2) 0.328,
portanto, O(logn);
2. rvores rubro-negras:
2.1 proposta por Guibas e Sedgewick em 1978;
2.2 altura: 2log
2
(n + 1), portanto, O(logn);
Comparao: rvores AVL e rubro-negras
1. rvores AVL:
1.1 primeira rvore binria de busca com balanceamento
proposta por Adelson-Velskii e Landis em 1962;
1.2 altura: entre log
2
(n + 1) e 1.4404log
2
(n + 2) 0.328,
portanto, O(logn);
2. rvores rubro-negras:
2.1 proposta por Guibas e Sedgewick em 1978;
2.2 altura: 2log
2
(n + 1), portanto, O(logn);
Comparao: rvores AVL so mais rigidamente balanceadas
que rvores rubro-negras, levando a insero e remoo mais
lentas, porm recuperao (busca) mais rpida;
Exerccios
1. Prove ou d contra-exemplo:
1.1 Toda rvore completa AVL.
1.2 Toda rvore AVL completa.
1.3 Toda rvore AVL rubro-negra.
1.4 Toda rvore rubro-negra AVL.
1.5 Toda rvore completa rubro-negra.
1.6 Toda rvore rubro-negra completa.
Exerccios
1. Mostre que o caminho mais longo a partir de um n x em
uma rvore rubro-negra at uma folha descendente tem
comprimento no mximo de duas vezes o comprimento do
caminho mais curto a partir do n x at uma folha
descendente.
Exerccios
1. Mostre que o caminho mais longo a partir de um n x em
uma rvore rubro-negra at uma folha descendente tem
comprimento no mximo de duas vezes o comprimento do
caminho mais curto a partir do n x at uma folha
descendente.
2. D um exemplo de insero em rvore rubro-negra cuja
recolorao dos ns se propaga at a raiz.
Exerccios
1. Mostre que o caminho mais longo a partir de um n x em
uma rvore rubro-negra at uma folha descendente tem
comprimento no mximo de duas vezes o comprimento do
caminho mais curto a partir do n x at uma folha
descendente.
2. D um exemplo de insero em rvore rubro-negra cuja
recolorao dos ns se propaga at a raiz.
3. Escreva o procedimento de remoo de um n em rvores
rubro-negras.
Exerccios
1. Mostre que o caminho mais longo a partir de um n x em
uma rvore rubro-negra at uma folha descendente tem
comprimento no mximo de duas vezes o comprimento do
caminho mais curto a partir do n x at uma folha
descendente.
2. D um exemplo de insero em rvore rubro-negra cuja
recolorao dos ns se propaga at a raiz.
3. Escreva o procedimento de remoo de um n em rvores
rubro-negras.
4. Prove ou d contra-exemplo: seja uma rvore rubro-negra
cuja raiz possui a cor rubra. Se esta for alterada para
negra, a rvore mantm-se rubro-negra.
Bibliograa Utilizada
SZWARCFITER, J. L. e MARKENZON, L. Estruturas de Dados e
seus Algoritmos, LTC, 1994.

Вам также может понравиться