Referência da Template de Classe persistence::stack::Node< T >

Descrição Detalhada

template<class T>
class persistence::stack::Node< T >

Nó da pilha persistente.

Veja também
Stack para mais informação.

Métodos Públicos

NodeK_Ancestor (int k)
 k-ésimo ancestral. Mais...
 
 Node (const T &x, Node *nx)
 
 Node (const Node &)=delete
 
Nodeoperator= (const Node &)=delete
 

Campos de Dados

val
 Valor do nó.
 
Nodenext
 Próximo nó. Mais...
 
const int depth
 Profundidade do nó. Mais...
 
Nodejmp
 Nó de pulo. Mais...
 
int ptr_ct
 Número de pointeiros para o nó. Mais...
 

Métodos

template<class T>
Node* persistence::stack::Node< T >::K_Ancestor ( int  k)

k-ésimo ancestral.

Parâmetros
kIndice do ancestral.
Retorna
O k-ésimo ancestral do nó. Se k = 0, devolve o próprio nó.

Campos

template<class T>
const int persistence::stack::Node< T >::depth

Profundidade do nó.

Se seguirmos o link next por depth vezes chegamos no nó null.

template<class T>
Node* persistence::stack::Node< T >::jmp

Nó de pulo.

Aponta para o nó u com u.depth = J(depth), onde J é a operação de diminuir em 1 o digito menos significativo não-nulo na base skew-binary canônica.

Veja também
[3] para mais informação sobre skew-binary.
template<class T>
Node* persistence::stack::Node< T >::next

Próximo nó.

Este campo armazena um ponteiro para o próximo nó da lista ligada, que no caso é o nó do elemento anterior da pilha.

template<class T>
int persistence::stack::Node< T >::ptr_ct

Número de pointeiros para o nó.

Este campo, não persistente, armazena, a todo momento, quantos ponteiros existem para esse nó. Ele conta os ponteiros #nxt de outros nós e ponteiros armazenados em #stack::Stack::node.

Isto é feito pois C++ não tem garbage collection), logo devemos manualmente deletar os nós que não tem mais como ser atingidos. Este campo é usado para remover o nó quando não existem mais ponteiros para ele. Já que a estrutura é acíclica, isso acontece quando o vértice não é mais atingível.

Como esta é uma classe auxiliar, toda a remoção acontece na classe stack::Stack.


A documentação para esta classe foi gerada a partir do seguinte arquivo:
  • /home/travis/build/yancouto/mestrado/source/persistence/Stack.hpp