|
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().