• Nenhum resultado encontrado

Algoritmos e Estruturas de Dados 2

N/A
N/A
Protected

Academic year: 2021

Share "Algoritmos e Estruturas de Dados 2"

Copied!
22
0
0

Texto

(1)

Algoritmos e Estruturas de Dados 2

Unidade 1: Árvores rubro-negras

Rafael Beserra Gomes

Universidade Federal do Rio Grande do Norte

Material compilado em 26 de março de 2013. Licença desta apresentação:

(2)

Um nó de uma árvore rubro-negra contém: chave, filho esquerdo,

filho direito, pai e cor (vermelho ou preto).

pai

ch

(3)

16

8

4

2

nil

nil

6

nil

nil

12

10

nil

nil

14

nil

nil

24

20

18

nil

nil

22

nil

nil

28

nil

nil

1. Todo nó ou é vermelho ou preto.

2. O nó raiz é sempre preto.

(4)

A rotação é uma operação básica na árvore que será utilizada para as demais operações.

É uma forma de reescrever uma subárvore modificando a raiz e mantendo

as propriedades de uma árvore binária de busca.

x

a

y

b

c

a x b y c

y

a x b y c

rotação à esquerda

(5)

Todo nó a ser adicionado será a princípio vermelho.

x

Suponha que a árvore está vazia.

1. Todo nó é vermelho ou preto

2. A raiz é preta

3. Toda folha é um nó nulo e preto

4. Se um nó é vermelho, então ambos os filhos são pretos

5. Para cada nó, todos os caminhos até uma folha tem a mesma altura de preto

Solução: tornamos este nó preto.

(6)

Se o pai for preto, nada precisa ser feito.

16

8

24

1. Todo nó é vermelho ou preto

2. A raiz é preta

3. Toda folha é um nó nulo e preto

4. Se um nó é vermelho, então ambos os filhos são pretos

(7)

Se o pai for vermelho, precisamos modificar a árvore.

8

4

?

1. Todo nó é vermelho ou preto

2. A raiz é preta

3. Toda folha é um nó nulo e preto

4. Se um nó é vermelho, então ambos os filhos são pretos

(8)

O procedimento depende da cor do tio.

16

8

4

?

24

?

?

(9)

Caso o tio for vermelho trocamos

as cores do pai, do tio e do avô.

16

8

4

?

24

?

?

16

8

24

Note que com a mudança deste nó para vermelho

precisamos verificar as propriedades que este nó

pode estar violando.

(10)

Caso o tio for preto, verificamos se

o novo nó é filho esquerdo ou direito.

16

8

4

a

(11)

Observação: este caso é quando o tio for filho direito de seu pai.

Caso seja filho esquerdo, considere toda a regra de forma simétrica.

Se o novo nó for filho esquerdo realizamos uma rotação

à direita entre seu pai e seu avô. Mudamos também a cor do pai e do avô.

16

8

4

a

24

8

Note que com este nó preto, não poderá

mais haver violações das propriedades.

(12)

Observação: este caso é quando o tio for filho direito de seu pai.

Caso seja filho esquerdo, considere toda a regra de forma simétrica.

Se o novo nó for filho direito realizamos uma rotação à esquerda entre o novo nó e seu pai.

Como consequência, temos o caso anterior (nó a ser analisado é filho esquerdo).

16

8

a

10

b

c

24

16

10

8

a

b

c

24

(13)
(14)

A remoção deste nó exige a extração do seu sucessor (nó 10).

16

8

4

2

1

3

6

5

12

10

11

14

13

24

20

18

17

19

22

21

23

28

26

30

(15)

Este nó contém agora a chave do sucessor.

16

10

4

2

1

3

6

5

12

11

14

13

24

20

18

17

19

22

21

23

28

26

30

(16)
(17)

16

8

4

2

1

3

6

5

12

10

14

13

24

20

18

17

19

22

21

23

28

26

30

(18)

16

8

4

2

1

3

6

5

12

nil

14

13

24

20

18

17

19

22

21

23

28

26

30

(19)

Observação: este caso é quando o irmão for filho direito de seu pai.

Caso seja filho esquerdo, considere toda a regra de forma simétrica.

Caso 1: o irmão é vermelho

16

8

x

24

w

22

26

24

16

26

(20)

Caso 2: o irmão é preto e respectivos filhos também

16

8

x

24

w

22

26

16

8

24

(21)

Observação: este caso é quando o irmão for filho direito de seu pai.

Caso seja filho esquerdo, considere toda a regra de forma simétrica.

Caso 3: irmão preto, filho esquerdo do irmão é vermelho e filho direito do irmão é preto

16

8

x

24

w

22

26

16

8

22

(22)

Observação: este caso é quando o irmão for filho direito de seu pai.

Caso seja filho esquerdo, considere toda a regra de forma simétrica.

Caso 4: irmão preto, filho direito do irmão é vermelho

16

8

x

24

w

22

26

24

16

26

Referências

Documentos relacionados

• As árvores vermelho-preto possuem um bit extra para armazenar a cor de cada nó, que pode ser VERMELHO ou PRETO.. • Além deste, cada nodo será composto ainda pelos

▫ Para cada nó, todos os caminhos do nodo até qualquer folha passa pelo mesmo número de

Em cada um dos 12 eixos/categorias foi preparado um capítulo contendo a análise da produção em artigos, e de teses e dissertações, seguindo um roteiro: panorama do eixo,

Os jogos nos ajudam a definir o profissional mais adequado para o perfil do cargo, de forma mais rápida e eficaz, uma vez que, nos permite visualizar seu desempenho em

O Licitante que, convocado dentro do prazo de validade de sua proposta, não assinar o contrato ou ata de registro de preços, deixar de entregar documentação

Será então criado um nó para cada central (nó semente) e para cada um desses nós é atribuída uma célula (antena) do vetor de células, levando-se em conta a capacidade da central.

Desse modo, cada nó sensor monitora seu ambiente local e repassa os dados coletados e processados a um nó central, chamado de nó sink, cuja função é agregar

Essa forma de morte celular só foi caracterizada morfologicamente no ID durante I-R recentemente (Shah et al., 1997) em ratos transplantados, e o atual estudo é, provavelmente,