|
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.
|
|
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:
- GT: el tipo de grafo basado en List_Graph.
- 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
{
}
};
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.
- SN: clase filtro para el iterador de nodos en caso de que se construya
- 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)
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] | info | Contenido asociado al nuevo nodo. |
- Devuelve
- puntero al nodo
- Excepciones
-
bad_alloc | si no hay suficiente memoria |
Referenciado por Aleph::Index_Graph< GT, Compare, Tree >::insert_node().
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] | p | puntero al nodo a eliminar |
- Excepciones
-
domain_error | si 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().
template<class GT, class Compare = Dft_Node_Cmp<GT>, template< class, class > class Tree = Treap, class SN = Dft_Show_Node<GT>>
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] | p | el 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().
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] | info | informació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.