#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. | |
Dlink * | get_child_list () |
Dlink * | get_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_Node * | get_left_sibling () |
Retorna hermano izquierdo de this. | |
Tree_Node * | get_right_sibling () |
Retorna hermano derecho de this. | |
Tree_Node * | get_left_child () |
retorna el hijo más a la izquierda de this. | |
Tree_Node * | get_right_child () |
retorna el hijo más a la derecha de this. | |
Tree_Node * | get_child (const int &i) |
Tree_Node * | get_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_Node * | get_left_tree () |
Retorna el árbol a la izquierda de this. | |
Tree_Node * | get_right_tree () |
Retorna el árbol a la derecha de this. | |
Tree_Node * | get_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. | |
Árboles m-rios genéricos.
La clase Tree_Node<Key> define árboles generales de cualquier orden representados mediante listas enlazadas.
Key | el tipo de dato que contiene cada nodo del árbol. |
|
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().
|
inline |
Retorna el i-ésimo hijo de this.
Retorna el i-ésimo hijo de this.
[in] | i | ordinal del hijo al que se desea acceder. |
Hace referencia a Aleph::Tree_Node< T >::get_left_child() y Aleph::Tree_Node< T >::get_right_sibling().
|
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().
|
inline |
Inserta p como hermano izquierdo de this.
Inserta p como hermano izquierdo de this.
[in] | p | nodo 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().
|
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.
[in] | p | nodo 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().
|
inline |
Inserta p como hermano derecho de this.
Inserta p como hermano derecho de this.
[in] | p | nodo 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().
|
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.
[in] | p | nodo 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().
|
inline |
Adjunta el árbol tree a la arborescencia this.
Adjunta el árbol tree a la arborescencia this.
[in] | tree | el árbol a añadir a la arborescencia. |
domain_error | si tree no es raíz. |
Hace referencia a Aleph::Tree_Node< T >::get_right_tree(), Aleph::Tree_Node< T >::is_rightmost() y Aleph::Tree_Node< T >::is_root().