|
| 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.
|
|
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:
- GT: el tipo de grafo basado en List_Graph
- 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
{
}
};
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
- 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)
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 |
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 |
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] | src | puntero al nodo origen. |
[in] | tgt | puntero 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().
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] | info | informació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().