# data[].attributes.body
- Criada por Rudolf Bayer em 1972
- Esquema de coloração dos nós para manter o balanceamento da árvore
- Cada nó da árvore possui um atributo de cor, que pode ser vermelho ou preto

# data[].attributes.body
As árvores também deve sastifazer os seguintes critérios:
- Todo nó deve ser vermelho ou preto
- A raiz é sempre preta
- Se um nó é vermelho, então os seus filhos são pretos
- Não existem nós vermelhos consecutivos
- Para cada nó, todos os caminhos desse nó para os nós folhas descendentes contém o mesmo número de nós pretos

# data[].attributes.body
- Feito por meio de rotações e ajuste de cores a cada inserção ou remoção
- Mantém o equilíbrio da árvore
- Custo máximo de qualquer algoritmo é O(log N)

# data[].attributes.body
- Mesma complexidade computacional
- O(log n)
- AVL é mais rápida na operação de busca, e mais lenta nas operações de inserção e remoção

# data[].attributes.body
- AVL possui balanceamento mais rígido
- No pior caso, uma operação de remoção pode exigir O(log N) rotações na árvore AVL, enquanto apenas 3 rotações na árvore Rubro-Negra.
- Caso a operação de busca seja a mais utilizada, a AVL irá se sobressair
- Caso as operações de inserção ou remoção sejam mais usadas, a Rubro Negra irá se sobressair
- Árvores Rubro-Negra são de uso mais geral do que as árvores AVL

# data[].attributes.headline
Árvore Rubro-Negra caída para a esquerda

# data[].attributes.subject
Árvore Rubro-Negra caída para a esquerda

# data[].attributes.body
- Robert Sedgewick, 2008
- Mesma complexidade de operações, mas possui uma implementação mais simples de inserção e remoção
- Se um nó é vermelho, então ele é o filho esquerdo do seu pai
- Aspecto de caída para a esquerda

# data[].attributes.headline
Árvore Rubro Negra caída para a esquerda

# data[].attributes.subject
Árvore Rubro Negra caída para a esquerda

# data[].attributes.body
- Sua implementação corresponde a de uma árvore 2-3
- Cada nó interno pode armazenar um ou dois valores
- Pode ter dois (um valor) ou três (dois valores) filhos
- Seu funcionamento é o mesmo da árvore binária de busca

# data[].attributes.body
- Aplicações e bibliotecas de linguagens de programação
- Java: java.util.TreeMap , java.util.TreeSet
- C++ STL: map, multimap, multiset
- Linux kernel: completely fair scheduler, linux/rbtree.h

# data[].attributes.headline
Vídeo:  Árvore Rubro Negra - Definição (Programação Descomplicada)

# data[].attributes.subject
Vídeo:  Árvore Rubro Negra - Definição (Programação Descomplicada)

# data[].attributes.attachment_link.title
[ED] Aula 105 - Árvore Rubro Negra - Definição

# data[].attributes.headline
Vídeo:  Árvore Rubro Negra Caída para a Esquerda (Programação Descomplicada)

# data[].attributes.subject
Vídeo:  Árvore Rubro Negra Caída para a Esquerda (Programação Descomplicada)

# data[].attributes.attachment_link.title
[ED] Aula 106 - Árvore Rubro Negra Caída para a Esquerda (LLRB)

# data[].attributes.headline
Vídeo:  Implementando uma Árvore Rubro Negra (Programação Descomplicada)

# data[].attributes.subject
Vídeo:  Implementando uma Árvore Rubro Negra (Programação Descomplicada)

# data[].attributes.attachment_link.title
[ED] Aula 107 - Implementando uma Árvore Rubro Negra

# data[].attributes.headline
Vídeo: Árvore Rubro-Negra - Inserção(Glasielly Demori)

# data[].attributes.subject
Vídeo: Árvore Rubro-Negra - Inserção(Glasielly Demori)

# data[].attributes.headline
Vídeo: Árvores Rubro Negras - Paródia           (Lucas Lima) 

# data[].attributes.subject
Vídeo: Árvores Rubro Negras - Paródia           (Lucas Lima) 

# data[].attributes.attachment_link.title
Árvores Rubro Negras - Paródia(See you Again )

# data[].attributes.headline
Artigo: Toward a Unique Representation for AVL and Red-Black Trees

# data[].attributes.subject
Artigo: Toward a Unique Representation for AVL and Red-Black Trees

# data[].attributes.body
- O artigo propõe uma única representação de ambas as árvores AVL e Rubro Negra, visando que cada uma possui um melhor desempenho em coisas diferentes.

Disponível em: https://www.scielo.org.mx/scielo.php?pid=S1405-55462019000200435&script=sci_arttext. Acesso em: 16 set. 2023.

# data[].attributes.headline
Artigo: Improving the Red-Black tree delete algorithm

# data[].attributes.subject
Artigo: Improving the Red-Black tree delete algorithm

# data[].attributes.body
- O artigo propõe uma melhoria no algoritmo de remoção da árvore rubro negra
- Diminui a mudança de cor em aprox. 29%
- O algoritmo proposto reduz em aprox. 4% o tempo de execução para operações de inserção e remoção, enquanto conserva a performance da operação de busca.

Disponível em: https://www.researchsquare.com/article/rs-1194654/v1. Acesso em: 16 set. 2023.

# data[].attributes.body
ÁRVORE Rubro Negra. [S. l.], 24 jun. 2019. Disponível em: https://www.facom.ufu.br/~backes/gsi011/Aula12-ArvoreRB.pdf. Acesso em: 13 set. 2023.

ZEGOUR, Djamel Eddine. Improving the Red-Black tree delete algorithm. Research Square, Ecole Supérieure d‘Informatique, 22 dez. 2021. DOI https://doi.org/10.21203/rs.3.rs-1194654/v1. Disponível em: https://www.researchsquare.com/article/rs-1194654/v1. Acesso em: 16 set. 2023.

ZEGOUR, Djamel Eddine; BOUNIF, Lynda. Toward a Unique Representation for AVL and Red-Black Trees. Computación y Sistemas, Ciudad de México, v. 23, n. 2, 10 mar. 2021. DOI https://doi.org/10.13053/cys-23-2-2840. Disponível em: https://www.scielo.org.mx/scielo.php?pid=S1405-55462019000200435&script=sci_arttext. Acesso em: 16 set. 2023.