Você está na página 1de 95

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Breno Piva Ribeiro IC/UNICAMP

11 de setembro de 2007

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Sumario

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Binarias de Busca

Arvores Binarias que possuem a seguinte propriedade: um no da subarvore Se y e esquerda de x, entao Chave[y ] Chave[x ]. um no da subarvore Se y e direita de x, entao Chave[x ] Chave[y ].

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Binarias de Busca

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Binarias de Busca


2

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Binarias de Busca

sobre Arvores Operac oes Binarias de Busca: Busca, M nimo, Maximo, Predecessor, Sucessor, Inserir, Remover

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Inserir

6 5

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Inserir

6 5

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Inserir

6 5

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Inserir

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Remover

ligeiramente mais complicado, Remover um elemento e casos a considerar: pois existem tres

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Remover

ligeiramente mais complicado, Remover um elemento e casos a considerar: pois existem tres uma folha. Caso 1: O elemento a ser removido e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Remover

ligeiramente mais complicado, Remover um elemento e casos a considerar: pois existem tres uma folha. Caso 1: O elemento a ser removido e Caso 2: O elemento a ser removido possui um unico lho.

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Remover

ligeiramente mais complicado, Remover um elemento e casos a considerar: pois existem tres uma folha. Caso 1: O elemento a ser removido e Caso 2: O elemento a ser removido possui um unico lho. Caso 3: O elemento a ser removido possui dois lhos.

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

uma folha Caso 1: O elemento a ser removido e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

uma folha Caso 1: O elemento a ser removido e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Caso 2: O elemento a ser removido possui um unico lho

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Caso 2: O elemento a ser removido possui um unico lho

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Caso 2: O elemento a ser removido possui um unico lho

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Caso 3: O elemento a ser removido possui dois lhos

15

18

12

16

20

10

13

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Caso 3: O elemento a ser removido possui dois lhos

15

18

12

16

20

10

13

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Caso 3: O elemento a ser removido possui dois lhos

15 6

18

12

16

20

10

13

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Caso 3: O elemento a ser removido possui dois lhos

15

18

12

16

20

10

13

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Analise

percorrem um unico Todas operac oes caminho da raiz ate e da uma folha, logo, a complexidade dessas operac oes a altura da arvore. ordem O(h), onde h e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Sumario

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

uma Arvore Uma Arvore Rubro-Negra e Binaria de Busca que indica sua com um bit extra de armazenamento por no cor, PRETA ou VERMELHA.

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

uma Arvore Uma Arvore Rubro-Negra e Binaria de Busca que indica sua com um bit extra de armazenamento por no cor, PRETA ou VERMELHA. e restringir a forma como os nos podem ser A ideia as folhas de tal coloridos em qualquer caminho da raiz ate forma que nenhum caminho possa ser mais que duas vezes mais longo que outro caminho, deste modo a arvore ca aproximadamente balanceada.

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

uma Arvore Uma Arvore Binaria de Busca e Rubro-Negra se ela satisfaz as seguintes propriedades: e VERMELHO ou PRETO 1: Todo no

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

uma Arvore Uma Arvore Binaria de Busca e Rubro-Negra se ela satisfaz as seguintes propriedades: e VERMELHO ou PRETO 1: Todo no PRETA 2: A raiz e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

uma Arvore Uma Arvore Binaria de Busca e Rubro-Negra se ela satisfaz as seguintes propriedades: e VERMELHO ou PRETO 1: Todo no PRETA 2: A raiz e PRETA 3: Toda folha (NIL) e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

uma Arvore Uma Arvore Binaria de Busca e Rubro-Negra se ela satisfaz as seguintes propriedades: e VERMELHO ou PRETO 1: Todo no PRETA 2: A raiz e PRETA 3: Toda folha (NIL) e e VERMELHO, entao ambos os seus lhos 4: Se um no PRETOS sao

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

uma Arvore Uma Arvore Binaria de Busca e Rubro-Negra se ela satisfaz as seguintes propriedades: e VERMELHO ou PRETO 1: Todo no PRETA 2: A raiz e PRETA 3: Toda folha (NIL) e e VERMELHO, entao ambos os seus lhos 4: Se um no PRETOS sao todos os caminhos do no para folhas 5: Para cada no, o mesmo numero PRETOS. descendentes contem de nos

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

11

14

1 NIL NIL 5 NIL NIL

7 NIL 8 NIL NIL

13 NIL

15 NIL NIL

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

11

14

13

15

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

Lema: internos possui altura no Uma Arvore Rubro-Negra com n nos maximo 2lg(n + 1).

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras
Prova: Primeiro mostramos que a subarvore com raiz em bh ( x contem pelo menos 2 x ) -1 nos internos. qualquer no em bh(x)) (Por induc ao

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras
Prova: Primeiro mostramos que a subarvore com raiz em bh ( x contem pelo menos 2 x ) -1 nos internos. qualquer no em bh(x)) (Por induc ao internos, ou Caso Base (bh(x) = 0): 2bh(x ) -1 = 20 -1 = 0 nos uma folha. seja, bh(x) = 0 engloba o caso em que x e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras
Prova: Primeiro mostramos que a subarvore com raiz em bh ( x contem pelo menos 2 x ) -1 nos internos. qualquer no em bh(x)) (Por induc ao internos, ou Caso Base (bh(x) = 0): 2bh(x ) -1 = 20 -1 = 0 nos uma folha. seja, bh(x) = 0 engloba o caso em que x e com altura-preta H.I.: A subarvore que tem como raiz o no internos. bh(x)-1 possui 2bh(x )1 -1 nos

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras
Prova: Primeiro mostramos que a subarvore com raiz em bh ( x contem pelo menos 2 x ) -1 nos internos. qualquer no em bh(x)) (Por induc ao internos, ou Caso Base (bh(x) = 0): 2bh(x ) -1 = 20 -1 = 0 nos uma folha. seja, bh(x) = 0 engloba o caso em que x e com altura-preta H.I.: A subarvore que tem como raiz o no internos. bh(x)-1 possui 2bh(x )1 -1 nos x com altura-preta bh(x) possuem P.I.: Os lhos de um no altura-preta bh(x) se for vermelho ou bh(x)-1 se for preto, logo, a subarvore que tem x como raiz possui pelo menos internos. (2bh(x )1 -1) + (2bh(x )1 -1) + 1 = 2bh(x ) -1 nos

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

Agora que provamos que a subarvore com raiz em x contem pelo menos 2bh(x ) -1 nos internos. qualquer no Iremos completar a prova que uma Arvore Rubro-Negra internos possui altura no maximo com n nos 2lg(n + 1).

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

Seja h a altura da arvore. De acordo com a propriedade 4, em qualquer caminho simples pelo menos metade dos nos uma folha, nao incluindo a raiz, deve ser da raiz ate PRETA. Consequentemente, a altura-preta da raiz deve ser pelo menos h/2. Entao:

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

Seja h a altura da arvore. De acordo com a propriedade 4, em qualquer caminho simples pelo menos metade dos nos uma folha, nao incluindo a raiz, deve ser da raiz ate PRETA. Consequentemente, a altura-preta da raiz deve ser pelo menos h/2. Entao: n 2h/2 1

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

Seja h a altura da arvore. De acordo com a propriedade 4, em qualquer caminho simples pelo menos metade dos nos uma folha, nao incluindo a raiz, deve ser da raiz ate PRETA. Consequentemente, a altura-preta da raiz deve ser pelo menos h/2. Entao: n 2h/2 1 Passando o 1 para o lado esquerdo e tomando os logaritmos de ambos os lados, temos:

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

Seja h a altura da arvore. De acordo com a propriedade 4, em qualquer caminho simples pelo menos metade dos nos uma folha, nao incluindo a raiz, deve ser da raiz ate PRETA. Consequentemente, a altura-preta da raiz deve ser pelo menos h/2. Entao: n 2h/2 1 Passando o 1 para o lado esquerdo e tomando os logaritmos de ambos os lados, temos: lg (n + 1) h/2 ou h 2lg (n + 1)

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Arvores Rubro-Negras

Corolario: de Busca, M As operac oes nimo, Maximo, Sucessor e Predecessor podem ser implementadas em O(lgn).

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Rotac oes

X LeftRotate(T,x) S1 Y RightRotate(T,y) S3 S1 Y

X S3

S2

S2

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Inserir

Inserir e Remover sao mais complicadas As operac oes nas Arvores Rubro-Negras porque elas podem ferir alguma propriedade deste tipo de arvore.

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Inserir

Inserir e Remover sao mais complicadas As operac oes nas Arvores Rubro-Negras porque elas podem ferir alguma propriedade deste tipo de arvore. podem ser Como veremos, essas operac oes implementadas de forma bastante parecida com as nas Arvores respectivas operac oes Binarias de Busca, para que as bastando apenas modicar as cores dos nos propriedades de Arvores Rubro-Negras sejam satisfeitas.

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Inserir

Inserir e Remover sao mais complicadas As operac oes nas Arvores Rubro-Negras porque elas podem ferir alguma propriedade deste tipo de arvore. podem ser Como veremos, essas operac oes implementadas de forma bastante parecida com as nas Arvores respectivas operac oes Binarias de Busca, para que as bastando apenas modicar as cores dos nos propriedades de Arvores Rubro-Negras sejam satisfeitas. e a remoc propriamente ditas ja foram Como a inserc ao ao vistas para Arvores Binarias de Busca, veremos apenas o necessario que e para acertar as cores da arvore.

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Inserir

casos para corrigir as cores apos uma Existem tres inserc ao:

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Inserir

casos para corrigir as cores apos uma Existem tres inserc ao: VERMELHO. Caso 1: O tio do elemento inserido e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Inserir

casos para corrigir as cores apos uma Existem tres inserc ao: VERMELHO. Caso 1: O tio do elemento inserido e PRETO e o elemento Caso 2: O tio do elemento inserido e um lho da direita. inserido e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Inserir

casos para corrigir as cores apos uma Existem tres inserc ao: VERMELHO. Caso 1: O tio do elemento inserido e PRETO e o elemento Caso 2: O tio do elemento inserido e um lho da direita. inserido e PRETO e o elemento Caso 3: O tio do elemento inserido e um lho da esquerda. inserido e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Inserir

11

14

13

15

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

VERMELHO Caso 1: O tio do elemento inserido e

11

14

13

15

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

PRETO e o Caso 2: O tio do elemento inserido e um lho da direita elemento inserido e

11

14

13

15

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

PRETO e o Caso 3: O tio do elemento inserido e um lho da esquerda elemento inserido e

11

14

13

15

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Inserir

11

5 8 4 13 15 14

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Remover

uma Existem quatro casos para corrigir as cores apos mas antes de den remoc ao, -los, identiquemos alguns nos:

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Remover

uma Existem quatro casos para corrigir as cores apos mas antes de den remoc ao, -los, identiquemos alguns nos: a ser removido. Seja z o no

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Remover

uma Existem quatro casos para corrigir as cores apos mas antes de den remoc ao, -los, identiquemos alguns nos: a ser removido. Seja z o no Seja y = z se z possuia um ou nenhum lho ou y = succ(z) se z possuia dois lhos.

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Remover

uma Existem quatro casos para corrigir as cores apos mas antes de den remoc ao, -los, identiquemos alguns nos: a ser removido. Seja z o no Seja y = z se z possuia um ou nenhum lho ou y = succ(z) se z possuia dois lhos. de z ou NIL caso y Seja x o lho de y antes da remoc ao possuisse lho. nao

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Remover

uma Existem quatro casos para corrigir as cores apos mas antes de den remoc ao, -los, identiquemos alguns nos: a ser removido. Seja z o no Seja y = z se z possuia um ou nenhum lho ou y = succ(z) se z possuia dois lhos. de z ou NIL caso y Seja x o lho de y antes da remoc ao possuisse lho. nao de z. Seja w o tio de x antes da remoc ao

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

15

18

12

16

20

13

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Vamos considerar x sempre como sendo duplo-PRETO, a e que o x recebe a PRETIDAO ideia do pai para manter PRETO e a propriedade 5 (nos casos em que x e VERMELHO basta fazer x simplesmente PRETO e todas respeitadas). as propriedades estarao

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Remover

VERMELHO. Caso 1: w e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Remover

VERMELHO. Caso 1: w e PRETO, seus dois lhos sao PRETOS. Caso 2: w e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Remover

VERMELHO. Caso 1: w e PRETO, seus dois lhos sao PRETOS. Caso 2: w e PRETO, seu lho da esquerda e VERMELHO Caso 3: w e PRETO. e se lho da direita e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Remover

VERMELHO. Caso 1: w e PRETO, seus dois lhos sao PRETOS. Caso 2: w e PRETO, seu lho da esquerda e VERMELHO Caso 3: w e PRETO. e se lho da direita e PRETO e seu lho da direita e VERMELHO. Caso 4: w e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

VERMELHO Caso 1: w e

S1

S2

S3

S4 S5

S6

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

VERMELHO Caso 1: w e

Invertendo as cores do pai e de w obtemos:


D

S5

S6

S1

S2 S3

S4

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

PRETO, seus dois lhos sao PRETOS Caso 2: w e

S1

S2

S3

S4 S5

S6

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

PRETO, seus dois lhos sao PRETOS Caso 2: w e

Removendo um PRETO de x, fazendo w VERMELHO, adicionando PRETO ao pai e fazendo pai novo x:
x B c

S1

S2

S3

S4 S5

S6

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

PRETO, seu lho da esquerda e Caso 3: w e PRETO VERMELHO e se lho da direita e

S1

S2

S3

S4 S5

S6

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

PRETO, seu lho da esquerda e Caso 3: w e PRETO VERMELHO e se lho da direita e


Invertendo as cores de w e do seu lho da esquerda e fazendo para a direita: uma rotac ao
B c

S1

S2

S3

S4

S5

S6

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

PRETO e seu lho da direita e Caso 4: w e VERMELHO

S1

S2

S3

S4 S5

S6

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

PRETO e seu lho da direita e Caso 4: w e VERMELHO


Atribuindo a cor do pai a w, fazendo pai PRETO, lho da direta para a esquerda, temos: de w PRETO e fazendo uma rotac ao
D c

S5

S6

S1

S2 S3

S4

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Analise

de inserc e remoc propriamente ditas As operac oes ao ao gastam cada uma, tempo O(lgn), assim como as demais de Arvores operac oes Binarias de Busca, portanto, resta de corrigir as cores em saber quanto gastam as operac oes e facil perceber que cada Inserir e Remover, porem nao gasta mais que O(lgn) e, portanto, Inserir e operac ao Remover podem ser executadas em tempo O(lgn).

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Sumario

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Resumindo
Arvores Binarias de Busca: da arvore: menores ou iguais a ` esquerda Para todo no nos maiores ou iguais a ` direita. e nos

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Resumindo
Arvores Binarias de Busca: da arvore: menores ou iguais a ` esquerda Para todo no nos maiores ou iguais a ` direita. e nos Operac oes: Busca, M nimo, Maximo, Predecessor, Sucessor, Inserir e Remover.

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Resumindo
Arvores Binarias de Busca: da arvore: menores ou iguais a ` esquerda Para todo no nos maiores ou iguais a ` direita. e nos Operac oes: Busca, M nimo, Maximo, Predecessor, Sucessor, Inserir e Remover. Inserir: basta manter a propriedade basica das Arvores Binarias de Busca. Insere sempre como uma folha.

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Resumindo
Arvores Binarias de Busca: da arvore: menores ou iguais a ` esquerda Para todo no nos maiores ou iguais a ` direita. e nos Operac oes: Busca, M nimo, Maximo, Predecessor, Sucessor, Inserir e Remover. Inserir: basta manter a propriedade basica das Arvores Binarias de Busca. Insere sempre como uma folha. casos dependendo de quantos lhos possui Remover: tres o no.
nenhum lho: simplesmente remove o no. um lho: o lho passa a ser lho do avo. dois lhos: encontrar o sucessor para assumir o lugar do no.

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Resumindo
Arvores Binarias de Busca: da arvore: menores ou iguais a ` esquerda Para todo no nos maiores ou iguais a ` direita. e nos Operac oes: Busca, M nimo, Maximo, Predecessor, Sucessor, Inserir e Remover. Inserir: basta manter a propriedade basica das Arvores Binarias de Busca. Insere sempre como uma folha. casos dependendo de quantos lhos possui Remover: tres o no.
nenhum lho: simplesmente remove o no. um lho: o lho passa a ser lho do avo. dois lhos: encontrar o sucessor para assumir o lugar do no.

Complexidade das operac oes: O(h).

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Resumindo
Arvores Rubro-Negras: Arvores Binarias de Busca com bit adicional para representar a cor (PRETA ou VERMELHA).

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Resumindo
Arvores Rubro-Negras: Arvores Binarias de Busca com bit adicional para representar a cor (PRETA ou VERMELHA). Cinco propriedades basicas:
e colorido PRETO ou VERMELHO. Todo no PRETA. A raiz e PRETAS. As folhas (NIL) sao e VERMELHO, seus lhos sao PRETOS. Se um no todos os caminhos ate as folhas Para cada no, o mesmo numero descendentes contem de nos.

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Resumindo
Arvores Rubro-Negras: Arvores Binarias de Busca com bit adicional para representar a cor (PRETA ou VERMELHA). Cinco propriedades basicas:
e colorido PRETO ou VERMELHO. Todo no PRETA. A raiz e PRETAS. As folhas (NIL) sao e VERMELHO, seus lhos sao PRETOS. Se um no todos os caminhos ate as folhas Para cada no, o mesmo numero descendentes contem de nos.

internos tem Lema: Uma Arvore Rubro-Negra com n nos altura no maximo 2lg(n+1).

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Resumindo
Arvores Rubro-Negras: Arvores Binarias de Busca com bit adicional para representar a cor (PRETA ou VERMELHA). Cinco propriedades basicas:
e colorido PRETO ou VERMELHO. Todo no PRETA. A raiz e PRETAS. As folhas (NIL) sao e VERMELHO, seus lhos sao PRETOS. Se um no todos os caminhos ate as folhas Para cada no, o mesmo numero descendentes contem de nos.

internos tem Lema: Uma Arvore Rubro-Negra com n nos altura no maximo 2lg(n+1). que uma arvore Possui todas as operac oes binaria balanceada comum possui.

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Resumindo

Arvores Rubro-Negras: casos a considerar. Inserir: tes


VERMELHO: inverte cores do avo, pai e tio. O tio e PRETO e lho da direita: faz rotac para a O tio e ao esquerda. PRETO e lho da esquerda: inverte cores do avo e O tio e para a direita. do pai e faz rotac ao

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Resumindo
Arvores Rubro-Negras: Remover: quatro casos a considerar.
VERMELHO: inverte cores do pai e de w. we PRETO e ambos os lhos de w sao pretos: remove we um PRETO de x, faz w VERMELHO e adiciona PRETO ao pai. Faz pai novo x. PRETO, o lho da esquerda e VERMELHO e o da we direita PRETO: inverte cores de w e do seu lho da para a direita. esquerda e faz uma rotac ao PRETO e o lho da direita e VERMELHO: atribui a cor we do pai a w, faz pai PRETO, faz lho da direta de w PRETO para a esquerda. e faz uma rotac ao

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Resumindo
Arvores Rubro-Negras: Remover: quatro casos a considerar.
VERMELHO: inverte cores do pai e de w. we PRETO e ambos os lhos de w sao pretos: remove we um PRETO de x, faz w VERMELHO e adiciona PRETO ao pai. Faz pai novo x. PRETO, o lho da esquerda e VERMELHO e o da we direita PRETO: inverte cores de w e do seu lho da para a direita. esquerda e faz uma rotac ao PRETO e o lho da direita e VERMELHO: atribui a cor we do pai a w, faz pai PRETO, faz lho da direta de w PRETO para a esquerda. e faz uma rotac ao

Complexidade das operac oes: O(lgn).

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Exerc cios:

12.3-5: Questao de remoc e comutativa no sentido que A operac ao ao removendo x e depois y de uma arvore binaria de busca resulta na mesma arvore que removendo y e depois x? ou de um contra-exemplo. Argumente porque e

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Exerc cios:

13.3-5: Questao de n Considere uma arvore rubro-negra formada pela inserc ao com a operac Inserir. Argumente que se n > 1, a arvore nos ao pelo menos um no VERMELHO. tera

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Exerc cios:

13.4-6: Questao preocupados que no Os professores Skelton e Baron entao in cio do caso 1 do procedimento para acertar as cores apos o pai do no x pode nao ser PRETO. Se os uma remoc ao, o procedimento pode professores estiverem corretos, entao colorido VERMELHO). Mostre que o pai estar errado (pois w e x deve ser PRETO no in do no cio do caso 1, para que os tenham nada com que se preocupar. professores nao

Breno Piva Ribeiro IC/UNICAMP

Arvores Binarias Balanceadas (Arvores Rubro-Negras)

Você também pode gostar