|
|
GT_Arc * | insert (GT_Arc *e) |
| | Inserta en el índice el arco a.
|
| |
| GT_Arc * | search (void *src, void *tgt) |
| |
| GT_Arc * | search (GT_Arc *a) |
| |
| GT_Arc * | insert_in_graph (GT_Node *src, GT_Node *tgt, const GT_Arc_Type &info) throw (std::exception, std::domain_error) |
| |
| GT_Arc * | insert_in_graph (GT_Node *src, GT_Node *tgt, GT_Arc_Type &&info=GT_Arc_Type()) throw (std::exception, std::domain_error) |
| |
|
void | remove (GT_Arc *e) |
| | Elimina del índice el arco e.
|
| |
|
void | remove_from_graph (GT_Arc *a) |
| | Elimina del índice y del grafo el arco a.
|
| |
|
void | clear_index () |
| | Elimina todos los arcos del índice.
|
| |
|
void | build_index () |
| | Inserta todos los arcos del grafo en el índice.
|
| |
| | IndexArc (GT &__g, bool with_init=true, SA &&__sa=SA()) |
| |
| | IndexArc (GT &__g, bool with_init, SA &__sa) |
| |
|
size_t | size () const |
| | Retorna la cantidad de arcos que contiene el índice.
|
| |
template<class GT, template< class, class > class Tree = Rand_Tree, class SA = Dft_Show_Arc<GT>>
class Aleph::IndexArc< GT, Tree, SA >
Construye un índice de arcos para su rápida búsqueda y recuperación dado sus nodos.
IndexArc indiza los arcos de un grafo según el par de nodos que el arco relaciona. La idea es implementar la detección de existencia de arco y su recuperación en tiempo logarítmico.
La clase recibe los siguientes parámetros tipo:
- GT: el tipo de grafo basado en List_Graph.
- Tree: el tipo de árbol binario de búsqueda usado internamente para indizar las claves. Por omisión se usan treaps.
- Atención
- Para que la compilación correcta es imperativo que el exista el constructor GT::Arc(void * src, void * tgt, GT::Arc_Type). Del mismo modo, también debe existir el constructor por omisión GT::Arc_Type().
- Ver también
- IndexNode Index_Graph
- Autor
- Leandro Rabindranath León (lrleon en ula punto ve)
-
Alejandro Mujica (aledrums en gmail punto com)
template<class GT, template< class, class > class Tree = Rand_Tree, class SA = Dft_Show_Arc<GT>>
| GT_Arc* Aleph::IndexArc< GT, Tree, SA >::insert_in_graph |
( |
GT_Node * |
src, |
|
|
GT_Node * |
tgt, |
|
|
const GT_Arc_Type & |
info |
|
) |
| |
| throw | ( | std::exception, |
| | std::domain_error |
| ) | | |
|
inline |
Crea un nuevo arco entre dos nodos, lo inserta en el grafo y luego en el índice.
- Parámetros
-
| [in] | src | nodo origen. |
| [in] | tgt | nodo destino. |
| [in] | info | información a copiarse como contenido del nodo. Por omisión se copia el contenido que arroje el constructor GT::Arc_Type(). |
- Devuelve
- puntero al arco creado.
- Excepciones
-
| bad_alloc | si no hay suficiente memoria. |
Referenciado por Aleph::Index_Graph< GT, Compare, Tree >::insert_arc().