Iteradores Java para C++:
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Amigas 'defines' Páginas
Tipos públicos | Métodos privados | Métodos privados estáticos | Atributos privados | Amigas | Lista de todos los miembros
Referencia de la plantilla de la Clase TL::Tree_Node< E >

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

#include <Tree_L.h>

Tipos públicos

typedef E value_type
 Nombre estándar del tipo de elemento contenido. Más...
 

Métodos privados

 Tree_Node (const value_type &d)
 Constructor de vector. Más...
 
unsigned Abs_n_child () const
 Retorna el valor absoluto del campo "m_n_child". Más...
 

Métodos privados estáticos

static Tree_Node< E > * Get_New (const value_type &d)
 Crea un nuevo nodo y lo inicializa con "d". Más...
 

Atributos privados

value_type m_data
 Valor almacenado en el nodo. Más...
 
unsigned m_refCount
 Cantidad de punteros hacia mi. Más...
 
int m_n_child
 Soy el el hijo número "(m_n_child - 1)" de mi padre. Más...
 
Tree_Node< E > * m_left_child
 Puntero al nodo hijo más izquierdo. Más...
 
Tree_Node< E > * m_right_brother
 Puntero al nodo hermano o al padre. Más...
 

Amigas

class Tree< E >
 

Descripción detallada

template<class E>
class TL::Tree_Node< E >

Nodos almacenados en el árbol.

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

Documentación de los 'Typedef' miembros de la clase

template<class E>
typedef E TL::Tree_Node< E >::value_type

Nombre estándar del tipo de elemento contenido.

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

Documentación del constructor y destructor

template<class E>
TL::Tree_Node< E >::Tree_Node ( const value_type d)
inlineprivate

Constructor de vector.

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

Documentación de las funciones miembro

template<class E >
Tree_Node< E > * TL::Tree_Node< E >::Get_New ( const value_type d)
inlinestaticprivate

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::m_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::m_v_Alive[] para saber si los métodos de árbol están correctamente implementados.

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

template<class E >
unsigned TL::Tree_Node< E >::Abs_n_child ( ) const
inlineprivate

Retorna el valor absoluto del campo "m_n_child".

  • Hay que tomar en cuenta que que m_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 (m_n_child != 0) porque siempre int(0) == int(-0)

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

Documentación de las funciones relacionadas y clases amigas

template<class E>
friend class Tree< E >
friend

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

Documentación de los datos miembro

template<class E>
value_type TL::Tree_Node< E >::m_data
private

Valor almacenado en el nodo.

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

template<class E>
unsigned TL::Tree_Node< E >::m_refCount
private

Cantidad de punteros hacia mi.

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

template<class E>
int TL::Tree_Node< E >::m_n_child
private

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

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

template<class E>
Tree_Node<E>* TL::Tree_Node< E >::m_left_child
private

Puntero al nodo hijo más izquierdo.

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

template<class E>
Tree_Node<E>* TL::Tree_Node< E >::m_right_brother
private

Puntero al nodo hermano o al padre.

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


La documentación para esta clase fue generada a partir del siguiente fichero: