Estruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1

Documentos relacionados
Estruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C

Estruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1

Árvores Rubro-Negra IFRN

Estruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1

Aula 19 Árvores Rubro-Negras

Estruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1

Aula 13 Árvores Rubro-Negras

Árvore Binária de Busca. Algoritmos e Estrutura de Dados II. Operações Busca e Sucessor. Árvore Binária de Busca. Árvores Rubro-Negras

ÁRVORE RUBRO- NEGRA. Prof. André Backes. Também conhecida como árvore vermelhopreto

Árvores Rubro-Negras. Árvores Rubro-Negras. (Vermelho-Preta) Estrutura da Árvore. Estrutura da Árvore

Árvore Vermelho-Preta. Estrutura de Dados II Jairo Francisco de Souza

Estruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1

Árvores Vermelho-Preto

Árvores Vermelho-Preto

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres

Estruturas de Dados. Árvores AVL: Partes I e II. Desempenho de ABBs (Revisão)

ÁRVORE AVL. Problema do balanceamento

INF 1010 Estruturas de Dados Avançadas. Árvores binárias

INF1010 Lista de Exercícios 2

Árvore Binária de Busca

Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Árvores AVL. O balanceamento da árvore pode ser realizado localmente se apenas uma porção da árvore for afetada por operações de inserção ou remoção.

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio;

Árvores-B: Remoção. Cristina Dutra de Aguiar Ciferri Thiago A. S. Pardo

Algoritmos e Estruturas de Dados II Árvores - AVL. Prof. César Melo DCC/ICE/UFAM

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Árvores B. Definição: Seja t a ordem da árvore B. Uma árvore B de ordem t é uma árvore ordenada que é vazia, ou que satisfaz as seguintes condições:

Árvores-B (Parte Ib) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

Árvores Binárias de Busca

INF 1010 Estruturas de Dados Avançadas

Pesquisa em Memória Primária. Prof. Jonas Potros

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof Márcio Bueno. / Material da Prof a Ana Eliza

Árvores AVL. Prof. Othon M. N. Batista Estrutura de Dados

Árvores Binárias de Busca

Algoritmo: Split. Árvores B Parte IV. Algoritmo: Split. Algoritmo: Split. Algoritmo: Split. Procedimento inicial. Parâmetros

Árvores-B: Remoção. Cristina Dutra de Aguiar Ciferri Thiago A. S. Pardo

AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras

Árvores Auto-ajustadas

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Árvore binária - definição

ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES

GGI026 - Árvore rubro-negra

Pesquisa em Memória Secundária. Prof. Jonas Potros

Árvores B Parte III. Propriedades, Remoção & Inserção Revisitada. Adaptado e Estendido dos Originais de:

Árvores - Conceitos. Roseli Ap. Francelin Romero

Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256

GGI026 - Árvore rubro-negra - Remoção

SCC Algoritmos e Estruturas de Dados II. 6ª lista de exercícios

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

BC1424 Algoritmos e Estruturas de Dados I. Aula 16: Árvores (introdução) Prof. Jesús P. Mena-Chalco. jesus.mena@ufabc.edu.br

Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação. Árvores Balanceadas

Árvores B. Árvores B Parte II. Características. Características. Construção Bottom-Up. Leandro C. Cintra Maria Cristina F. de Oliveira.

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior

ESTRUTURA DE DADOS DCC013. Árvore Binária de Busca

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

Estruturas de Dados. Árvores. Onde Estamos? Introdução à estrutura de dados. Alocação dinâmica de memória. Pilhas. Filas.

INF 1010 Estruturas de Dados Avançadas

SCC-503 Algoritmos e Estruturas de Dados II. Modificado por Moacir Ponti Jr, do original de:

Arvores binárias. Fonte: PF 14 pf/algoritmos/aulas/bint.html

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Árvores Binárias de Busca

Árvores Binárias de Busca (ABB) 18/11

ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres

Algoritmos e Estruturas de Dados I. Aula 11 Árvores AVL. Prof. Jesús P. Mena-Chalco.

Árvores AVL e Árvores B. Jeane Melo

Árvores binárias de busca

Árvores Rubro-Negras Letícia Rodrigues Bueno

ESTRUTURAS DE DADOS E ALGORITMOS ÁRVORE BINÁRIA

Árvore-B. Árvore B. Características Gerais. Sistemas de Banco de Dados. Características Gerais. Revisão

Geometria Computacional

Heapsort Letícia Rodrigues Bueno

Estruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1

Melhores momentos AULA 3. Algoritmos p.148/188

Árvores B. Prof. Flávio Humberto Cabral Nunes

Estruturas de Dados. Aula 08. Árvores AVL II. Karina Mochetti

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof a Karina Oliveira. Fonte: Prof a Ana Eliza

AED1 - Árvores. Hebert Coelho. Instituto de Informática Universidade Federal de Goiás. HC AED1-Árvores 1/49

Estruturas de Dados com Jogos. Capítulo 9 Árvores Balanceadas

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Árvores AVL (Balanceadas) Profª.Drª. Roseli Ap. Francelin Romero Fonte: Profa. Patrícia Marchetti Revisão: Gedson Faria

DAINF - Departamento de Informática

Árvores Binárias Balanceadas Estrutura de Dados I

INF 1620 P2-23/10/04 Questão 1 Nome:

ÁRVORE BINÁRIA DE BUSCA TDA-ABB

Árvores-B (Parte II) Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures

Acesso Sequencial Indexado

Árvores Binárias de Busca

Definição. Árvores B Parte III. Propriedades Gerais. Propriedade (No. Mín. de Chaves) Leandro C. Cintra Maria Cristina F.

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Árvores Binárias de Busca

Árvores binárias de busca

Estruturas de Dados II

Árvores. Algoritmos e Estruturas de Dados 2005/2006

Melhores momentos AULA 2. Otimização Combinatória p. 71

Introdução a AVL: teoria e prática. 22/11, 25/11 e 30/11

Transcrição:

Estruturas de Dados Cristina Gomes Fernandes Estruturas de Dados p. 1

ABBs rubro-negras Uma ABB é rubro-negra se 1. todo nó é rubro ou negro 2. toda folha (NIL) é negra 3. se um nó é rubro, então seus dois filhos são negros 4. todo caminho de um nó x até uma folha sua descendente tem o mesmo número de nós negros. Estruturas de Dados p. 2

ABBs rubro-negras Uma ABB é rubro-negra se 1. todo nó é rubro ou negro 2. toda folha (NIL) é negra 3. se um nó é rubro, então seus dois filhos são negros 4. todo caminho de um nó x até uma folha sua descendente tem o mesmo número de nós negros. Uma ABB é rubro-negra é caída para a esquerda (left leaning) se, para todo nó com um único filho rubro, o filho rubro é o da esquerda. Estruturas de Dados p. 2

ABB rubro-negra caída para a esquerda 12 8 14 6 10 13 15 2 7 9 11 1 4 3 5 Estruturas de Dados p. 3

Árvores 2-3 e 2-3-4 rubro-negras Uma árvore 2-3 é uma B-árvore com m = 2. Uma árvore 2-3-4 é uma B-árvore com m = 3. Estruturas de Dados p. 4

Árvores 2-3 e 2-3-4 rubro-negras Uma árvore 2-3 é uma B-árvore com m = 2. Uma árvore 2-3-4 é uma B-árvore com m = 3. Um nó de uma árvore 2-3 ou 2-3-4 com com três chaves é chamado de 4-nó (árvores 2-3-4), duas chaves é chamado de 3-nó, e com uma chave é chamado de 2-nó. Estruturas de Dados p. 4

Árvores 2-3 e 2-3-4 rubro-negras Uma árvore 2-3 é uma B-árvore com m = 2. Uma árvore 2-3-4 é uma B-árvore com m = 3. Um nó de uma árvore 2-3 ou 2-3-4 com com três chaves é chamado de 4-nó (árvores 2-3-4), duas chaves é chamado de 3-nó, e com uma chave é chamado de 2-nó. Pode-se representar uma árvore 2-3 por uma rubro-negra em que todo nó negro tem no máximo um filho rubro. Estruturas de Dados p. 4

Árvores 2-3 e 2-3-4 rubro-negras Uma árvore 2-3 é uma B-árvore com m = 2. Uma árvore 2-3-4 é uma B-árvore com m = 3. Um nó de uma árvore 2-3 ou 2-3-4 com com três chaves é chamado de 4-nó (árvores 2-3-4), duas chaves é chamado de 3-nó, e com uma chave é chamado de 2-nó. Pode-se representar uma árvore 2-3 por uma rubro-negra em que todo nó negro tem no máximo um filho rubro. Pode-se representar uma árvore 2-3-4 por uma árvore rubro-negra. Estruturas de Dados p. 4

Árvores 2-3 rubro-negras 3-nó 12 8 14 3-nó 6 10 13 15 2 7 9 11 1 4 8 12 2 6 10 14 1 4 7 9 11 13 15 Estruturas de Dados p. 5

Árvores 2-3-4 rubro-negras 3-nó 12 8 14 3-nó 6 10 13 15 2 7 9 11 1 4 4-nó 8 12 3 5 2 6 10 14 1 3 4 5 7 9 11 13 15 Estruturas de Dados p. 6

Rotações O nó p é tal que dir(p) NIL e cor(dir(p)) = RUBRO. ROTACIONEESQ (p) 1 q dir(p) 2 dir(p) esq(q) 3 esq(q) p 4 cor(q) cor(p) 5 cor(p) RUBRO 6 devolva q Estruturas de Dados p. 7

Rotações O nó p é tal que dir(p) NIL e cor(dir(p)) = RUBRO. ROTACIONEESQ (p) 1 q dir(p) 2 dir(p) esq(q) 3 esq(q) p 4 cor(q) cor(p) 5 cor(p) RUBRO 6 devolva q Exercício: Escreva o ROTACIONEDIR. Estruturas de Dados p. 7

Ajusta cores O nó p é interno. TROQUECORES (p) 1 cor(p) OUTRACOR(cor(p)) 2 cor(esq(p)) OUTRACOR(cor(esq(p))) 3 cor(dir(p)) OUTRACOR(cor(dir(p))) Estruturas de Dados p. 8

Ajusta cores O nó p é interno. TROQUECORES (p) 1 cor(p) OUTRACOR(cor(p)) 2 cor(esq(p)) OUTRACOR(cor(esq(p))) 3 cor(dir(p)) OUTRACOR(cor(dir(p))) OUTRACOR (c) 1 se c = RUBRO 2 então devolva NEGRO 3 senão devolva RUBRO Estruturas de Dados p. 8

Inserção em ABB rubro-negra RUBRO (p) 1 se p = NIL 2 então devolva FALSO 3 senão se cor(p) = RUBRO 4 senão então devolva VERDADE 5 senão senão devolva FALSO NEGRO (p) 1 devolva não RUBRO(p) Estruturas de Dados p. 9

Inserção em ABB rubro-negra RUBRO (p) 1 se p = NIL 2 então devolva FALSO 3 senão se cor(p) = RUBRO 4 senão então devolva VERDADE 5 senão senão devolva FALSO NEGRO (p) 1 devolva não RUBRO(p) INSIRA (T, x) 1 T INSIRAREC(T, x) 2 cor(t) NEGRO a raiz é sempre negra Estruturas de Dados p. 9

Inserção em ABB rubro-negra 2-3 Esta é a inserção para árvores 2-3: INSIRAREC (T, x) 1 se T = NIL 2 então q NOVACÉLULA(x, NIL, NIL, RUBRO) 3 então devolva q 4 se x < info(t) 5 então esq(t) INSIRAREC(esq(T), x) 6 senão dir(t) INSIRAREC(dir(T),x) 7 se RUBRO(dir(T)) e NEGRO(esq(T)) 8 então T ROTACIONEESQ(T) 9 se RUBRO(esq(T)) e RUBRO(esq(esq(T))) 10 então T ROTACIONEDIR(T) 11 se RUBRO(esq(T)) e RUBRO(dir(T)) 12 então TROQUECORES(T) 13 devolva T Estruturas de Dados p. 10

Inserção em ABB rubro-negra 2-3 Mostre por indução na altura de T que, no INSIRAREC anterior, se a árvore T for rubro-negra 2-3 exceto pela raiz, que pode ser rubra, então a árvore T devolvida satisfaz: se a raiz de T era negra, então T é rubro-negra 2-3 exceto pela raiz, que pode ser rubra. se a raiz de T era rubra, então T é rubro-negra 2-3 exceto pela raiz, que pode ser rubra, e pode ter o filho esquerdo rubro. Conclua que, se a T for uma árvore rubro-negra 2-3, então a árvore devolvida por INSIRA(T, x) é rubro-negra 2-3. Estruturas de Dados p. 11

Inserção em ABB rubro-negra Esta é a inserção para árvores 2-3-4: INSIRAREC (T, x) 1 se T = NIL 2 então q NOVACÉLULA(x, NIL, NIL, RUBRO) 3 então devolva q 4 se RUBRO(esq(T)) e RUBRO(dir(T)) 5 então TROQUECORES(T) 6 se x < info(t) 7 então esq(t) INSIRAREC(esq(T), x) 8 senão dir(t) INSIRAREC(dir(T),x) 9 se RUBRO(dir(T)) e NEGRO(esq(T)) 10 então T ROTACIONEESQ(T) 11 se RUBRO(esq(T)) e RUBRO(esq(esq(T))) 12 então T ROTACIONEDIR(T) 13 devolva T Estruturas de Dados p. 12

Inserção em ABB rubro-negra Faça uma análise da correção desta versão do INSIRAREC. Conclua da sua análise que, se a T for uma árvore rubro-negra 2-3-4, então a árvore devolvida por INSIRA(T, x) é rubro-negra 2-3-4. Dica: ajuste as duas condições da prova por indução anterior para árvores rubro-negras 2-3-4, fortalecendo a primeira. Refaça a análise de casos cuidadosamente, para ver se os seus ajustes estão corretos. (Em outras palavras, faça a prova por indução.) Estruturas de Dados p. 13

Remoção em ABB Supõe que x está presente na ABB. REMOVA (T, x) 1 T REMOVAREC(T, x) REMOVAREC (T, x) 1 se x < info(t) 2 então esq(t) REMOVAREC(esq(T), x) 3 senão se x > info(t) 4 senão então dir(t) REMOVAREC(dir(T),x) 5 senão senão se dir(t) = NIL 6 senão senão então devolva esq(t) 7 senão senão p MÍNIMO(dir(T)) 8 senão senão info(t) info(p) 9 senão senão dir(t) REMOVAMIN(dir(T)) 10 devolva T Estruturas de Dados p. 14

Remoção em ABB REMOVAMIN (T) 1 se esq(t) = NIL 2 então devolva dir(t) 3 senão esq(t) REMOVAMIN(esq(T)) 4 senão devolva T Estruturas de Dados p. 15

Remoção em ABB REMOVAMIN (T) 1 se esq(t) = NIL 2 então devolva dir(t) 3 senão esq(t) REMOVAMIN(esq(T)) 4 senão devolva T Exercício: Modifique as rotinas acima para que a remoção funcione mesmo que x não esteja na ABB dada. Estruturas de Dados p. 15

RemovaMin em árvores 2-3 REMOVAMIN (T) 1 se esq(t) = NIL 2 então devolva NIL dir(t) = NIL aqui 3 se NEGRO(esq(T)) e NEGRO(esq(esq(T))) 4 então T MOVARUBROESQ(T) 5 esq(t) REMOVAMIN(esq(T)) Fixup 6 se RUBRO(dir(T)) e NEGRO(esq(T)) 7 então T ROTACIONEESQ(T) 8 se RUBRO(esq(T)) e RUBRO(dir(T)) 9 então TROQUECORES(T) 10 devolva T Estruturas de Dados p. 16

RemovaMin em árvores 2-3 MOVARUBROESQ (p) 1 TROQUECORES(p) 2 se RUBRO(esq(dir(p))) 3 então dir(p) ROTACIONEDIR(dir(p)) 4 então p ROTACIONEESQ(p) 5 então TROQUECORES(p) 6 devolva p Estruturas de Dados p. 17

RemovaMin em árvores 2-3 MOVARUBROESQ (p) 1 TROQUECORES(p) 2 se RUBRO(esq(dir(p))) 3 então dir(p) ROTACIONEDIR(dir(p)) 4 então p ROTACIONEESQ(p) 5 então TROQUECORES(p) 6 devolva p MOVARUBRODIR (p) 1 TROQUECORES(p) 2 se RUBRO(esq(esq(p))) 3 então p ROTACIONEDIR(p) 4 então dir(p) ROTACIONEESQ(dir(p)) 5 então TROQUECORES(p) 6 devolva p Estruturas de Dados p. 17

Remoção em ABB rubro-negra 2-3 REMOVA (T, x) 1 T REMOVAREC(T, x) 2 cor(t) NEGRO a raiz é sempre negra Estruturas de Dados p. 18

Remoção em ABB rubro-negra 2-3 REMOVA (T, x) 1 T REMOVAREC(T, x) 2 cor(t) NEGRO a raiz é sempre negra FIXUP (T) 1 se RUBRO(dir(T)) e NEGRO(esq(T)) 2 então ROTACIONEESQ(T) 3 se RUBRO(esq(T)) e RUBRO(dir(T)) 4 então TROQUECORES(T) 5 devolva T Estruturas de Dados p. 18

Remoção em ABB rubro-negra 2-3 REMOVAREC (T, x) 1 se x < info(t) 2 então se NEGRO(esq(T)) e NEGRO(esq(esq(T))) 3 então então T MOVARUBROESQ(T) 4 então esq(t) REMOVAREC(esq(T), x) 5 senão se RUBRO(esq(T)) 6 senão então T ROTACIONEDIR(T) 7 senão se x = info(t) e dir(t) = NIL 8 senão então devolva NIL 9 senão se NEGRO(dir(T)) e NEGRO(esq(dir(T))) 10 senão então T MOVARUBRODIR(T) 11 senão se x = info(t) 12 senão então info(t) MÍNIMO(dir(T)) 13 senão então dir(t) REMOVAMIN(dir(T)) 14 senão senão T REMOVAREC(dir(T),x) 15 FIXUP(T) Estruturas de Dados p. 19

Remoção em ABB rubro-negra 2-3 Exercício: Mostre que o REMOVAMIN funciona quando T é uma árvore rubro-negra 2-3 exceto pela raiz, que pode ser rubra, ou é uma árvore rubro-negra em que o filho esquerdo da raiz é rubro. Exercício: Mostre que o REMOVAREC funciona quando T é uma árvore rubro-negra 2-3 exceto pela raiz, que pode ser rubra, ou é uma árvore rubro-negra em que o filho esquerdo da raiz é rubro. Estruturas de Dados p. 20

RemovaMin REMOVAMIN (T) 1 se esq(t) = NIL 2 então devolva NIL dir(t) = NIL aqui 3 se NEGRO(esq(T)) e NEGRO(esq(esq(T))) 4 então T MOVARUBROESQ(T) 5 esq(t) REMOVAMIN(esq(T)) 6 FIXUP T Estruturas de Dados p. 21

RemovaMin REMOVAMIN (T) 1 se esq(t) = NIL 2 então devolva NIL dir(t) = NIL aqui 3 se NEGRO(esq(T)) e NEGRO(esq(esq(T))) 4 então T MOVARUBROESQ(T) 5 esq(t) REMOVAMIN(esq(T)) 6 FIXUP T REMOVA (T, x) 1 T REMOVAREC(T, x) 2 cor(t) NEGRO a raiz é sempre negra Estruturas de Dados p. 21

Remoção em ABB rubro-negra REMOVAREC (T, x) 1 se x < info(t) 2 então se NEGRO(esq(T)) e NEGRO(esq(esq(T))) 3 então então T MOVARUBROESQ(T) 4 então esq(t) REMOVAREC(esq(T), x) 5 senão se RUBRO(esq(T)) 6 senão então T ROTACIONEDIR(T) 7 senão se x = info(t) e dir(t) = NIL 8 senão então devolva NIL 9 senão se NEGRO(dir(T)) e NEGRO(esq(dir(T))) 10 senão então T MOVARUBRODIR(T) 11 senão se x = info(t) 12 senão então info(t) MÍNIMO(dir(T)) 13 senão então dir(t) REMOVAMIN(dir(T)) 14 senão senão dir(t) REMOVAREC(dir(T),x) 15 FIXUP(T) Estruturas de Dados p. 22

MovaRubroEsq para rubro-negra 2-3-4 MOVARUBROESQ (p) 1 TROQUECORES(p) 2 se RUBRO(esq(dir(p))) 3 então dir(p) ROTACIONEDIR(dir(p)) 4 então p ROTACIONEESQ(p) 5 então TROQUECORES(p) 6 então se RUBRO(dir(dir(p))) 7 então então dir(p) ROTACIONEESQ(dir(p)) 8 devolva p Estruturas de Dados p. 23

MovaRubroDir para rubro-negra 2-3-4 MOVARUBRODIR (p) 1 TROQUECORES(p) 2 se RUBRO(esq(esq(p))) 3 então p ROTACIONEDIR(p) 4 então TROQUECORES(p) 5 então se NEGRO(esq(dir(p))) 6 então então dir(p) ROTACIONEESQ(dir(p)) 7 devolva p Estruturas de Dados p. 24

FixUp para ABB rubro-negra 2-3-4 FIXUP (T) 1 se RUBRO(dir(T)) 2 então T ROTACIONEESQ(T) 3 se RUBRO(esq(T)) e RUBRO(esq(esq(T))) 4 então T ROTACIONEDIR(T) 5 se RUBRO(esq(T)) e RUBRO(dir(T)) 6 então TROQUECORES(T) 7 devolva T Estruturas de Dados p. 25

Mais exercícios e referências Exercício: Mostre que o REMOVAREC funciona quando T é uma árvore rubro-negra 2-3-4 exceto pela raiz, que pode ser rubra, ou é uma árvore rubro-negra em que o filho esquerdo da raiz é rubro ou os dois filhos da raiz são rubros. Referências: Artigo: http://www.cs.princeton.edu/ rs/talks/llrb/llrb.pdf Implementação: http://www.cs.princeton.edu/ rs/talks/llrb/java/ Estruturas de Dados p. 26