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::IndexNode< GT, Compare, Tree, SN >

#include <tpl_indexNode.H>

Métodos públicos

GT_Node * insert (GT_Node *p)
 
GT_Node * insert_in_graph (const GT_Node_Type &info)
 
GT_Node * insert_in_graph (GT_Node_Type &&info=GT_Node_Type())
 
GT_Node * search (GT_Node *p)
 
GT_Node * search (const GT_Node_Type &info)
 
void remove (GT_Node *p)
 Elimina del índice el nodo con dirección p.
 
void remove_from_graph (GT_Node *p) throw (std::exception, std::domain_error)
 
void clear_index ()
 Borra el índice; todos los nodos son eliminados.
 
void build_index ()
 Inserta todos los nodos del grafo en el índice.
 
void clear_graph ()
 Elimina todos los nodos del grafo y del índice.
 
 IndexNode (GT &__g, SN &&__sn=SN())
 
 IndexNode (GT &__g, SN &__sn)
 
size_t size () const
 Retorna la cantidad de arcos que contiene el índice.
 

Descripción detallada

template<class GT, class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap, class SN = Dft_Show_Node<GT>>
class Aleph::IndexNode< GT, Compare, Tree, SN >

Construye un índice de nodos para su rápida búsqueda y recuperación.

IndexNode indiza los nodos de un grafo según un clave dada definida por el usuario.

La clase recibe los siguientes parámetros tipo:

  1. GT: el tipo de grafo basado en List_Graph.
  2. Compare: clase de comparación para la clave de indización. El contrato de esta clase es intrumentar el operador () así:
    template <class GT>
    struct Dft_Node_Cmp
    {
    bool
    operator () (typename GT::Node * p1, typename GT::Node * p2) const
    {
    // acceso a los nodos y comparación según el campo deseado
    }
    };
    IndexNode recibe esta clase por omisión programada para comparar el valor retornado por get_info() sobre cada nodo. Para ello, el operador < del tipo GT::Node_Type debe estar implementado.
  3. SN: clase filtro para el iterador de nodos en caso de que se construya
  4. Tree: el tipo de árbol binario de búsqueda usado internamente para indizar las claves. Por omisión se usan treaps.
Ver también
IndexArc Index_Graph
Autor
Leandro Rabindranath León (lrleon en ula punto ve)
Alejandro Mujica (aledrums en gmail punto com)

Documentación del constructor y destructor

template<class GT, class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap, class SN = Dft_Show_Node<GT>>
Aleph::IndexNode< GT, Compare, Tree, SN >::IndexNode ( GT &  __g,
SN &&  __sn = SN() 
)
inline

Crea un índice a partir de los nodos insertado en el grafo.

Parámetros
[in]__gel grafo
[in]build_indexindica si se debe construir el índice durante la construcción
Excepciones
bad_allocsi no hay suficiente memoria.

Documentación de las funciones miembro

template<class GT, class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap, class SN = Dft_Show_Node<GT>>
GT_Node* Aleph::IndexNode< GT, Compare, Tree, SN >::insert ( GT_Node *  p)
inline

Inserta el nodo p en índice.

Parámetros
[in]ppuntero al nodo que se desea guardar en el índice
Excepciones
bad_allocsi no hay suficiente memoria

Referenciado por Aleph::IndexNode< GT, Compare, Tree >::build_index() y Aleph::IndexNode< GT, Compare, Tree >::insert_in_graph().

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

template<class GT, class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap, class SN = Dft_Show_Node<GT>>
GT_Node* Aleph::IndexNode< GT, Compare, Tree, SN >::insert_in_graph ( const GT_Node_Type &  info)
inline

Crea un nuevo nodo con contenido genérico info, lo inserta en el grafo y luego en el índice

Parámetros
[in]infoContenido asociado al nuevo nodo.
Devuelve
puntero al nodo
Excepciones
bad_allocsi no hay suficiente memoria

Referenciado por Aleph::Index_Graph< GT, Compare, Tree >::insert_node().

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

template<class GT, class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap, class SN = Dft_Show_Node<GT>>
GT_Node* Aleph::IndexNode< GT, Compare, Tree, SN >::insert_in_graph ( GT_Node_Type &&  info = GT_Node_Type())
inline

Esta es una función miembro sobrecargada que se suministra por conveniencia. Difiere de la anterior función solamente en los argumentos que acepta.

template<class GT, class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap, class SN = Dft_Show_Node<GT>>
void Aleph::IndexNode< GT, Compare, Tree, SN >::remove_from_graph ( GT_Node *  p)
throw (std::exception,
std::domain_error
)
inline

Elimina el nodo p del grafo y del ìndice.

Parámetros
[in]ppuntero al nodo a eliminar
Excepciones
domain_errorsi el nodo està insertado en el índice (lo que posiblemente signifique que tampoco en el grafo).

Referenciado por Aleph::Index_Graph< GT, Compare, Tree >::remove_node().

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

template<class GT, class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap, class SN = Dft_Show_Node<GT>>
GT_Node* Aleph::IndexNode< GT, Compare, Tree, SN >::search ( GT_Node *  p)
inline

Busca un nodo según el contenido de p.

Tome en cuenta que el criterio de búsqueda está determinado por la clase parámetro de comparación Compare.

Parámetros
[in]pel nodo cuya información se desea buscar.
Devuelve
puntero al nodo si es encontrado o nulo de lo contrario.

Referenciado por Aleph::IndexNode< GT, Compare, Tree >::build_index(), Aleph::Index_Graph< GT, Compare, Tree >::insert_arc(), Aleph::IndexNode< GT, Compare, Tree >::search() y Aleph::Index_Graph< GT, Compare, Tree >::search_node().

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

template<class GT, class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap, class SN = Dft_Show_Node<GT>>
GT_Node* Aleph::IndexNode< GT, Compare, Tree, SN >::search ( const GT_Node_Type &  info)
inline

Busca un nodo según la información info.

Tome en cuenta que el criterio de búsqueda está determinado por la clase parámetro de comparación Compare.

Parámetros
[in]infoinformación según la cual se desea realizar la búsqueda (la cual depende de la clase parámetro de comparación Compare.
Devuelve
puntero al nodo si es encontrado o nulo de lo contrario.

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

Leandro Rabindranath León