RedBlackTree.hpp
Vá para a documentação deste arquivo.
void Insert(const T &value)
Inserção de valor na ARN.
Nó da ARN parcialmente persistente.
Definition: RedBlackTree.hpp:18
void AddBlack(Node< T > *y, bool side)
Arruma violações causadas por remoção.
Node< T > * Active(Node< T > *u)
Versão ativa de um nó.
Árvore rubro-negra (ARN) parcialmente persistente.
Definition: RedBlackTree.hpp:123
const T * Remove(const T &value)
Remoção de valor na ARN.
Node * copy
Cópia do nó (se não é ativo).
Definition: RedBlackTree.hpp:63
bool red
Cor do nó (vermelho ou preto) Este campo só armazena a cor de nós ativos, ou seja, nós com copy = nullptr.
Definition: RedBlackTree.hpp:35
void Modify(Node< T > *u, bool side, Node< T > *v)
Modificação de filho de um nó.
Node< T > * Child(Node< T > *u, bool side, int version) const
Retorna um filho de um nó em dada versão.
int extraTimestamp
Tempo de criação do ponteiro extra.
Definition: RedBlackTree.hpp:101
const T value
Valor armazenado pelo nó Como este é um nó de uma árvore de busca binária, vale que os valores dos nó...
Definition: RedBlackTree.hpp:42
void Rotate(Node< T > *u, bool side)
Rotaciona um nó.
const T * Find(const T &x, int version)
Busca por um valor em dada versão da ARN.
std::vector< Node< T > * > roots
Raízes de todas as versões.
Definition: RedBlackTree.hpp:169
Node * child[2]
Nós filhos do nó.
Definition: RedBlackTree.hpp:29
void Transplant(Node< T > *u, Node< T > *x)
Subsitui um nó.
Node< T > * MinElement(Node< T > *u)
Menor elemento em uma subárvore na versão atual.
bool extraSide
Lado do ponteiro extra.
Definition: RedBlackTree.hpp:95
int timestamp
Tempo de criação do nó.
Definition: RedBlackTree.hpp:53