Descrição Detalhada
template<class T>
class persistence::red_black_tree::Node< T >
Nó da ARN parcialmente persistente.
- Veja também
- RedBlackTree Para mais informação sobre a ARN.
Métodos Públicos | |
Node (const T &val, int version) | |
Construtor padrão. Mais... | |
Campos Originais | |
Node * | child [2] |
Nós filhos do nó. Mais... | |
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 . Mais... | |
const T | value |
Valor armazenado pelo nó Como este é um nó de uma árvore de busca binária, vale que os valores dos nós em sua subárvore esquerda (descendentes de child[0] ) tem valor menor ou igual à value , e valores de nós em sua subárvore direita tem valor maior ou igual à value . | |
Campos Persistentes | |
int | timestamp |
Tempo de criação do nó. Mais... | |
Node * | copy |
Cópia do nó (se não é ativo). Mais... | |
Node * | parent |
Nó pai do nó. Mais... | |
Ponteiro extra | |
Campos associados ao ponteiro extra deste nó. O nó tem um ponteiro extra se | |
Node * | extra |
Ponteiro extra. Mais... | |
bool | extraSide |
Lado do ponteiro extra. Mais... | |
int | extraTimestamp |
Tempo de criação do ponteiro extra. Mais... | |
Construtores & Destrutores
persistence::red_black_tree::Node< T >::Node | ( | const T & | val, |
int | version | ||
) |
Construtor padrão.
- Parâmetros
-
val Valor para o nó. version Versão de criação.
Campos
Node* persistence::red_black_tree::Node< T >::child[2] |
Nós filhos do nó.
0 é o nó esquerdo e 1 o direito.
Node* persistence::red_black_tree::Node< T >::copy |
Cópia do nó (se não é ativo).
Operações de modificação podem causar a cópia de nós. Nesse caso, o nó que foi criado pela cópia deste é armazenado neste campo.
Se copy = null
, o nó é ativo e é válido para as versões a partir da versão timestamp até a mais atual. Caso contrário, o nó é valido para as versões a partir de timestamp até copy.timestamp - 1
.
Node* persistence::red_black_tree::Node< T >::extra |
Ponteiro extra.
Se extraTimestamp = -1, esse campo é inválido e deve ser ignorado. Caso contrário, representa o ponteiro extra do nó. Seu valor pode ser nulo. O campo extraSide indica se este é um ponteiro esquerdo ou direito.
bool persistence::red_black_tree::Node< T >::extraSide |
Lado do ponteiro extra.
Se extraTimestamp = -1, esse campo é inválido e deve ser ignorado. Caso contrário, representa o lado do ponteiro extra.
- Veja também
- extra
- Anotações
- É necessário armazenar este valor pois o ponteiro extra pode ser nulo, ou podem existir valores repetidos na árvore, e nesses casos não é possível inferir o lado do ponteiro apenas comparando seu valor com value.
int persistence::red_black_tree::Node< T >::extraTimestamp |
Tempo de criação do ponteiro extra.
O campo armazena a versão em que o ponteiro extra foi adicionado ao nó, ou -1
se este nó não tem ponteiro extra.
Node* persistence::red_black_tree::Node< T >::parent |
Nó pai do nó.
Este campo só armazena os pais de nós ativos, ou seja, nós com copy = nullptr
. Caso o nó não seja ativo, nullptr é armazenado.
Mais especificamente, o campo armazena qual nó ativo, se algum, aponta para este nó.
bool persistence::red_black_tree::Node< T >::red |
Cor do nó (vermelho ou preto) Este campo só armazena a cor de nós ativos, ou seja, nós com copy = nullptr
.
Caso o nó não seja ativo, o valor é inválido e deve ser ignorado.
int persistence::red_black_tree::Node< T >::timestamp |
Tempo de criação do nó.
Índice da operação de modificação na qual o nó foi criado.
A documentação para esta classe foi gerada a partir do seguinte arquivo:
- /home/travis/build/yancouto/mestrado/source/persistence/RedBlackTree.hpp