Aleph-w  1.5a.2
Biblioteca general de algoritmos y estructuras de datos
 Todo Clases Archivos Funciones Variables 'typedefs' Enumeraciones Amigas Grupos Páginas
Referencia de la plantilla de la Clase Aleph::Tree_Node< T >

#include <tpl_tree_node.H>

Tipos públicos

typedef T key_type
 Tipo de dato genérico que contiene el nodo.
 

Métodos públicos

T & get_key ()
 retorna referencia modificable al contenido del nodo.
 
T & get_data ()
 retorna referencia modificable al contenido del nodo.
 
Dlinkget_child_list ()
 
Dlinkget_sibling_list ()
 
bool is_root () const
 Retorna true si this es la raíz del árbol general.
 
bool is_leaf () const
 Retorna true si this es un nodo hoja.
 
bool is_leftmost () const
 Retorna true si this es el nodo más a la izquierda de sus hermanos.
 
bool is_rightmost () const
 Retorna true si this es el nodo más a la derecha de sus hermanos.
 
void set_is_root (bool value)
 
void set_is_leaf (bool value)
 
void set_is_leftmost (bool value)
 
void set_is_rightmost (bool value)
 
 Tree_Node ()
 Constructor vacío (clave indefinida).
 
 Tree_Node (const T &__data)
 Constructor con valor de dato __data.
 
Tree_Nodeget_left_sibling ()
 Retorna hermano izquierdo de this.
 
Tree_Nodeget_right_sibling ()
 Retorna hermano derecho de this.
 
Tree_Nodeget_left_child ()
 retorna el hijo más a la izquierda de this.
 
Tree_Nodeget_right_child ()
 retorna el hijo más a la derecha de this.
 
Tree_Nodeget_child (const int &i)
 
Tree_Nodeget_parent ()
 Retorna el padre de this.
 
void insert_right_sibling (Tree_Node *p)
 
void insert_left_sibling (Tree_Node *p)
 
void insert_leftmost_child (Tree_Node *p)
 
void insert_rightmost_child (Tree_Node *p)
 
void insert_tree_to_right (Tree_Node *tree)
 
Tree_Nodeget_left_tree ()
 Retorna el árbol a la izquierda de this.
 
Tree_Nodeget_right_tree ()
 Retorna el árbol a la derecha de this.
 
Tree_Nodeget_last_tree ()
 
template<typename Operation >
void for_each_child (Operation &op)
 
template<typename Operation >
void for_each_child (Operation &&op=Operation())
 
template<typename Operation >
void for_each_child (Operation &op) const
 
template<typename Operation >
void for_each_child (Operation &&op=Operation()) const
 
template<template< typename > class Container = DynList>
Container< Tree_Node * > children_nodes () const
 Retorna una lista de los nodos hijos de this.
 
template<template< typename > class Container = DynList>
Container< T > children () const
 Retorna una lista de los contenidos de los hijos de this.
 

Descripción detallada

template<class T>
class Aleph::Tree_Node< T >

Árboles m-rios genéricos.

La clase Tree_Node<Key> define árboles generales de cualquier orden representados mediante listas enlazadas.

Parámetros
Keyel tipo de dato que contiene cada nodo del árbol.

Documentación de las funciones miembro

template<class T>
template<typename Operation >
void Aleph::Tree_Node< T >::for_each_child ( Operation &  op)
inline

Visita cada hijo de this y ejecuta la operación operation sobre el nodo hijo

Hace referencia a Aleph::Tree_Node< T >::get_left_child().

Referenciado por Aleph::Tree_Node< T >::children() y Aleph::Tree_Node< T >::children_nodes().

+ Gráfico de llamadas para esta función:

+ Gráfico de llamadas a esta función:

template<class T>
Tree_Node* Aleph::Tree_Node< T >::get_child ( const int &  i)
inline

Retorna el i-ésimo hijo de this.

Retorna el i-ésimo hijo de this.

Parámetros
[in]iordinal del hijo al que se desea acceder.
Devuelve
puntero al i-ésimo hijo de this; NULL si no existe.

Hace referencia a Aleph::Tree_Node< T >::get_left_child() y Aleph::Tree_Node< T >::get_right_sibling().

+ Gráfico de llamadas para esta función:

template<class T>
Tree_Node* Aleph::Tree_Node< T >::get_last_tree ( )
inline

Retorna el árbol más a la derecha de la arborescencia this. Dispara excepción range_error si this no es el árbol más a la izquierda de toda la arborescencia.

Hace referencia a Aleph::Tree_Node< T >::is_leftmost().

+ Gráfico de llamadas para esta función:

template<class T>
void Aleph::Tree_Node< T >::insert_left_sibling ( Tree_Node< T > *  p)
inline

Inserta p como hermano izquierdo de this.

Inserta p como hermano izquierdo de this.

Parámetros
[in]pnodo a insertar como hermano izquierdo.

Hace referencia a Aleph::Dlink::append(), Aleph::Dlink::del(), Aleph::Tree_Node< T >::get_left_child(), Aleph::Tree_Node< T >::get_left_sibling(), Aleph::Tree_Node< T >::get_parent(), Aleph::Tree_Node< T >::is_leaf(), Aleph::Tree_Node< T >::is_leftmost(), Aleph::Tree_Node< T >::is_rightmost() y Aleph::Tree_Node< T >::is_root().

+ Gráfico de llamadas para esta función:

template<class T>
void Aleph::Tree_Node< T >::insert_leftmost_child ( Tree_Node< T > *  p)
inline

Inserta p como el hijo más a la izquierda de this.

Inserta p como el hijo más a la izquierda de this.

Parámetros
[in]pnodo a insertar.

Hace referencia a Aleph::Dlink::del(), Aleph::Tree_Node< T >::get_left_child(), Aleph::Tree_Node< T >::get_left_sibling(), Aleph::Tree_Node< T >::get_right_sibling(), Aleph::Tree_Node< T >::is_leaf(), Aleph::Tree_Node< T >::is_leftmost(), Aleph::Tree_Node< T >::is_rightmost() y Aleph::Tree_Node< T >::is_root().

+ Gráfico de llamadas para esta función:

template<class T>
void Aleph::Tree_Node< T >::insert_right_sibling ( Tree_Node< T > *  p)
inline

Inserta p como hermano derecho de this.

Inserta p como hermano derecho de this.

Parámetros
[in]pnodo a insertar como hermano derecho.

Hace referencia a Aleph::Tree_Node< T >::get_right_sibling(), Aleph::Dlink::insert(), Aleph::Tree_Node< T >::is_leaf(), Aleph::Tree_Node< T >::is_leftmost(), Aleph::Tree_Node< T >::is_rightmost() y Aleph::Tree_Node< T >::is_root().

+ Gráfico de llamadas para esta función:

template<class T>
void Aleph::Tree_Node< T >::insert_rightmost_child ( Tree_Node< T > *  p)
inline

Inserta p como el hijo más a la derecho de this.

Inserta p como el hijo más a la derecho de this.

Parámetros
[in]pnodo a insertar.

Hace referencia a Aleph::Tree_Node< T >::is_leaf(), Aleph::Tree_Node< T >::is_leftmost(), Aleph::Tree_Node< T >::is_rightmost() y Aleph::Tree_Node< T >::is_root().

+ Gráfico de llamadas para esta función:

template<class T>
void Aleph::Tree_Node< T >::insert_tree_to_right ( Tree_Node< T > *  tree)
inline

Adjunta el árbol tree a la arborescencia this.

Adjunta el árbol tree a la arborescencia this.

Parámetros
[in]treeel árbol a añadir a la arborescencia.
Excepciones
domain_errorsi tree no es raíz.
Nota
tree deben ser raíz de un árbol.

Hace referencia a Aleph::Tree_Node< T >::get_right_tree(), Aleph::Tree_Node< T >::is_rightmost() y Aleph::Tree_Node< T >::is_root().

+ Gráfico de llamadas para esta función:


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

Leandro Rabindranath León