Página principal | Lista de namespace | Lista de componentes | Lista de archivos | Miembros del Namespace  | Miembros de las clases | Archivos de los miembros | Páginas relacionadas

Referencia de la Clase TL::Tree::Node

Nodos almacenados en el árbol. Más...

Lista de todos los miembros.

Métodos privados

 Node (const value_type &d)
 Constructor de vector.
unsigned Abs_n_child ()
 Retorna el valor absoluto del campo "_n_child".

Métodos privados estáticos

NodeGet_New (const value_type &d)
 Crea un nuevo nodo y lo inicializa con "d".

Atributos privados

value_type _data
 Valor almacenado en el nodo.
unsigned _refCount
 Cantidad de punteros hacia mi.
int _n_child
 Soy el el hijo número "(_n_child - 1)" de mi padre.
Node_left_child
 Puntero al nodo hijo más izquierdo.
Node_right_brother
 Puntero al nodo hermano o al padre.

Amigas

class Tree


Descripción detallada

Nodos almacenados en el árbol.

Definición en la línea 49 del archivo Tree_L.h.


Documentación del constructor y destructor

TL::Tree::Node::Node const value_type d  )  [inline, private]
 

Constructor de vector.

Definición en la línea 52 del archivo Tree_L.h.


Documentación de las funciones miembro

Tree::Node * TL::Tree::Node::Get_New const value_type d  )  [inline, static, private]
 

Crea un nuevo nodo y lo inicializa con "d".

  • Para mejorar la eficiencia, no incializa los punteros del nodo.
  • Si la macro USE_v_Alive de compilación existe, también agrega el nuevo nodo al contenedor global Tree::_v_Alive[], de manera que es posible saber si un puntero a un nodo está o no en uso.
  • En realidad sobra usar este método, pero la utilidad de usarlo es que es posible examinar Tree::_v_Alive[] para saber si los métodos de árbol están correctamente implementados.

Definición en la línea 218 del archivo Tree_L.h.

unsigned TL::Tree::Node::Abs_n_child  )  [inline, private]
 

Retorna el valor absoluto del campo "_n_child".

  • Hay que tomar en cuenta que que _n_child está incrementado en +int(1) porque la marca de "puntero al padre" es un valor negativo, y como hay un hijo número cero int(0), no sería posible marcar como "puntero al padre" a ese nodo
  • Esta rutina también existe para documentar el truco del "puntero al padre", pues más directo habría sido usar la función abs() definida en #include <cstdlib>
  • En otras palabras, parte de la invariante de un nodo siempre será que (_n_child != 0) porque siempre int(0) == int(-0)

Definición en la línea 602 del archivo Tree_L.h.


Documentación de las funciones relacionadas y clases amigas

Tree [friend]
 

Definición en la línea 50 del archivo Tree_L.h.


Documentación de los datos miembro

value_type TL::Tree::Node::_data [private]
 

Valor almacenado en el nodo.

Definición en la línea 56 del archivo Tree_L.h.

unsigned TL::Tree::Node::_refCount [private]
 

Cantidad de punteros hacia mi.

Definición en la línea 57 del archivo Tree_L.h.

int TL::Tree::Node::_n_child [private]
 

Soy el el hijo número "(_n_child - 1)" de mi padre.

Definición en la línea 58 del archivo Tree_L.h.

Node* TL::Tree::Node::_left_child [private]
 

Puntero al nodo hijo más izquierdo.

Definición en la línea 59 del archivo Tree_L.h.

Node* TL::Tree::Node::_right_brother [private]
 

Puntero al nodo hermano o al padre.

Definición en la línea 60 del archivo Tree_L.h.


La documentación para esta clase fué generada a partir del siguiente archivo:
Generado el Sun Feb 19 09:37:35 2006 para Uso de TL::Tree y TV::Tree: por  doxygen 1.3.9.1