Você está na página 1de 14

RED BLACK

TREE

FERNANDO SOUZA, KEVIN


WILLYN, RAFAEL NÓBREGA,
PEDRO VINÍCIUS
 São Árvores binarias de busca
 Possuem um bit extra para armazenamento da
informação da cor do nó (Vermelho ou preto)
 Além deste, cada nodo será composto ainda pelos
seguintes campos:
1. Valor (os “dados” do nodo)
CARACTERÍSTICAS
2. FE (filho esquerdo)

3. FD (filho direito)

4. PAI
 Ela é complexa, mas tem um bom pior-caso de tempo de
execução para suas operações e é eficiente na prática
 pode-se buscar, inserir, e remover em tempo O(log n), onde n
CARACTERÍSTICAS é o número total de elementos da árvore.
 De maneira simplificada, uma árvore rubro-negra é uma árvore
de busca binária que insere e remove de forma inteligente,
para assegurar que a árvore permaneça aproximadamente
balanceada.
1. Todo nó é vermelho ou preto;

2. A raiz é preta;

3. Toda folha (Nil) é preta;

PROPRIEDADES 4. Se um nó é vermelho, então os seus filhos são


pretos
5. Para cada nó, todos os caminhos do nó para
folhas descendentes contém o mesmo número
de nós PRETOS.
APRESENTAÇÃO
 Quanto à raiz: Ser sempre preta é uma regra usada
em algumas definições. Como a raiz pode sempre
ser
alterada de vermelho para preto, mas não sendo
válido o oposto, esta regra tem pouco efeito na
análise.

PROPRIEDADES  Um nó que satisfaz os itens acima é denominado


equilibrado, caso contrário é dito desequilibrado.
Em uma árvore rubro-negra todos os nós estão
equilibrados.
 Uma condição óbvia obtida das propriedades é
que num caminho da raiz até uma sub-árvore vazia
não pode existir dois nós rubros consecutivos.
 Cada vez que uma operação for realizada na árvore, o conjunto
de propriedades é testado;
PROPRIEDADES  Caso alguma não seja satisfeita, são realizadas rotações e/ou
ajustes de cores, de forma que a árvore permaneça
balanceada;
RED BLACK
1. O auto-equilíbrio é fornecido pintando cada nó
com duas cores (vermelho ou preto).
2. Quando a Árvore é modificada, a nova árvore é
COMPARAÇÕES posteriormente reorganizada e repintada.
3. Requer 1 bit de informação de cor para cada nó
na árvore.
1. Root é sempre preto.

2. Todas as folhas NULL são pretas, ambos os filhos do nó


vermelho são pretos.
3. Cada caminho simples de um determinado nó para qualquer
RESTRIÇÕES DA uma de suas folhas descendentes contém o mesmo número
RED BLACK de
4. nós pretos .

5. O caminho da raiz até a folha mais distante não é mais do que


o dobro do caminho da raiz até a folha mais próxima.
AVL
1. A diferença de altura das subárvores esquerda e
direita do nó deve ser menor que 2.
2. O reequilíbrio é feito quando as alturas de duas
COMPARAÇÕES subárvores filhas de um nó diferem em mais de
um.
3. Recuperações mais rápidas e estritamente
equilibradas.
 A árvore Red Black tem melhor pior caso que a árvore AVL.

➢ Isso faz com que a árvore seja utilizada em aplicações de


tempo real (críticas)
➢ Pode ser usada para construir blocos em outras estruturas de
dados que precisam de garantias no pior caso. Por exemplo:
APLICAÇÕES estruturas de dados em geometria computacional podem ser
baseadas em árvores Red Black.
➢ Árvores Red Black são usadas na maioria das bibliotecas de
linguagem, como map , multimap , multiset em C++,
enquanto as árvores AVL são usadas em bancos de dados
onde recuperações mais rápidas são necessárias.
 As árvores AVL fornecem pesquisas mais
rápidas do que as Red Black Trees porque são
mais estritamente equilibradas.
 As Red Black Trees fornecem operações de
inserção e remoção mais rápidas do que as

DIFERENÇAS árvores AVL, pois menos rotações são feitas


devido ao balanceamento relativamente
relaxado.
 As árvores AVL armazenam fatores de
equilíbrio ou alturas com cada nó, portanto,
requer armazenamento para um número inteiro
por nó, enquanto a Red Black Tree requer
apenas 1 bit de informação por nó.
A
IMPLEMENTAÇÃO
 T.H. Cormen, C.E. Leiserson, R.L. Rivest, C.
Stein, Introduction to Algorithms, 2nd
edition, MIT Press & McGraw-Hill, 2001.
 Árvore Vermelho-Preta - Estrutura de Dados II -
Jairo Francisco de Souza
 Red-Black Tree (Python Code with Examples) -

REFERÊNCIAS https://favtutor.com/blogs/red-black-tree-
python
 Red Black Tree vs AVL Tree -
https://acervolima.com/red-black-tree-vs-avl-
tree/

 "Uma vez flamengo sempre flamengo"

Você também pode gostar