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

#include <tpl_indexGraph.H>

Métodos públicos

 Index_Graph (GT &g)
 Crea un índice del grafo: los nodos y arcos son indizados.
 
GT_Node * insert_node (const GT_Node_Type &info)
 
GT_Arc * insert_arc (GT_Node *src, GT_Node *tgt, const GT_Arc_Type &info=GT_Arc_Type()) throw (std::exception, std::domain_error)
 
GT_Node * search_node (GT_Node *p)
 
GT_Node * search_node (const GT_Node_Type &info)
 
GT_Arc * search_arc (GT_Node *src, GT_Node *tgt)
 
void remove_node (GT_Node *p)
 
void remove_arc (GT_Arc *a)
 Elimina del grafo y del índice el arco a.
 
size_t get_num_arcs () const
 Retorna el número de arcos que contiene el índice.
 
size_t get_num_nodes () const
 Retorna el número de nodos que contiene el índice.
 

Descripción detallada

template<class GT, class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap>
class Aleph::Index_Graph< GT, Compare, Tree >

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

Index_Graph indiza los nodos y arcos a efectos de su recuper5ación rápida.

A efectos de facilitar el uso y hacer su uso más seguro, Index_Graph ofrece las operaciones topológicas clásicas de un grafo: insert_node(), insert_arc(), etc.

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 de los nodos. 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
    }
    };
    Por omisión esta clase está 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. 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 IndexNode
Autor
Leandro Rabindranath León (lrleon en ula punto ve)
Alejandro Mujica (aledrums en gmail punto com)

Documentación de las funciones miembro

template<class GT , class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap>
GT_Arc* Aleph::Index_Graph< GT, Compare, Tree >::insert_arc ( GT_Node *  src,
GT_Node *  tgt,
const GT_Arc_Type &  info = GT_Arc_Type() 
)
throw (std::exception,
std::domain_error
)
inline

Crea un nuevo arco entre dos nodos y lo inserta en el grafo y en el índice.

Parámetros
[in]srcnodo origen.
[in]tgtnodo destino.
[in]infoinformación a copiarse en el arco. Por omisión es la que dé el constructor GT_Arc_Type().
Devuelve
puntero al nuevo arco.
Excepciones
bad_allocsi no hay suficiente memoria.

Hace referencia a Aleph::IndexArc< GT, Tree, SA >::insert_in_graph() y Aleph::IndexNode< GT, Compare, Tree, SN >::search().

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

template<class GT , class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap>
GT_Node* Aleph::Index_Graph< GT, Compare, Tree >::insert_node ( const GT_Node_Type &  info)
inline

Crea un nuevo nodo y lo inserta en grafo y en el índice.

Parámetros
[in]infoinformación a copiarse en el nodo.
Devuelve
puntero al nuevo nodo.
Excepciones
bad_allocsi no hay suficiente memoria.

Hace referencia a Aleph::IndexNode< GT, Compare, Tree, SN >::insert_in_graph().

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

template<class GT , class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap>
void Aleph::Index_Graph< GT, Compare, Tree >::remove_node ( GT_Node *  p)
inline

Elimina el nodo p del grafo y del índice.

Parámetros
[in]ppuntero al nodo a eliminar

Hace referencia a Aleph::IndexArc< GT, Tree, SA >::remove() y Aleph::IndexNode< GT, Compare, Tree, SN >::remove_from_graph().

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

template<class GT , class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap>
GT_Arc* Aleph::Index_Graph< GT, Compare, Tree >::search_arc ( GT_Node *  src,
GT_Node *  tgt 
)
inline

Busca en el índice un arco dados dos nodos.

Parámetros
[in]srcpuntero al nodo origen.
[in]tgtpuntero al nodo destino.
Devuelve
puntero al arco en caso de encontrarse en el índice; NULL de lo contrario.

Hace referencia a Aleph::IndexArc< GT, Tree, SA >::search().

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

template<class GT , class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap>
GT_Node* Aleph::Index_Graph< GT, Compare, Tree >::search_node ( GT_Node *  p)
inline

Busca en el índice un nodo.

Parámetros
[in]ppuntero al nodo.
Devuelve
puntero al nodo en caso de encontrarse en el índice; NULL de lo contrario.

Hace referencia a Aleph::IndexNode< GT, Compare, Tree, SN >::search().

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

template<class GT , class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap>
GT_Node* Aleph::Index_Graph< GT, Compare, Tree >::search_node ( const GT_Node_Type &  info)
inline

Busca en el índice un nodo.

Parámetros
[in]infoinformación según la cual se buscará el nodo.
Devuelve
puntero al nodo en caso de encontrarse en el índice; NULL de lo contrario.
Atención
Tome en consideración que la búsqueda se realiza según la implementación de la clase de comparación Compare pasada en tiempo de instanciación.

Hace referencia a Aleph::IndexNode< GT, Compare, Tree, SN >::search().

+ 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