#include <tpl_sgraph.H>
Diagrama de herencias de Aleph::List_SGraph< __Graph_Node, __Graph_Arc >Clases | |
| class | Arc_Iterator |
| class | Node_Arc_Iterator |
| class | Node_Iterator |
Métodos públicos | |
| virtual Node * | insert_node (Node *p) |
| virtual void | remove_arc (Arc *arc) |
| virtual void | remove_node (Node *p) |
| Node * | get_first_node () const |
| Arc * | get_first_arc () const |
| Arc * | get_first_arc (Node *p) const |
| template<class GT > | |
| List_SGraph (GT &g) | |
| void | swap (List_SGraph &g) |
| List_SGraph (List_SGraph &&g) | |
| List_SGraph & | operator= (const List_SGraph &g) |
| List_SGraph & | operator= (List_SGraph &&g) |
| template<class Compare > | |
| void | sort_arcs (Compare &cmp) |
| template<class Compare > | |
| void | sort_arcs (Compare &&cmp=Compare()) |
| GRAPH_FUNCTIONAL_METHODS (List_SGraph) | |
Atributos públicos | |
| GRAPH_ITERATIVE_METHODS | |
| GRAPH_SEARCH_METHODS | |
| GRAPH_INSERTION_METHODS | |
Clase grafo implementado con listas de adyacencia.
List_SGraph<Node, Arc> es una clase que modeliza grafos representados mediante listas de adyacencia.
La clase maneja dos parámetros tipo fundamentales:
Estas clases deben haberse definido previamente.
Una vez instanciado un List_SGraph<Node, Arc>, los nodos y arcos deben accederse mediante los tipos internos:
| __Graph_Node | El tipo de nodo. Debe estar definido a partir de la clase __Graph_Node, bien sea por inclusión de atributos, por derivación o por combinación de ambos |
| __Graph_Arc | El tipo de arco. Debe estar definido a partir de la clase __Graph_Arc, bien sea por inclusión de atributos, por derivación o por combinación de ambos |
|
inlinevirtual |
Inserción de un nodo cuya memoria ya ha sido apartada.
Este método asume un nodo de tipo List_Graph::Node apuntado por el parámetro node y lo inserta en el grafo.
| [in] | node | puntero a un nodo ya creado que no pertenece a ningún grafo. |
delete, node debe haber sido imperativamente apartado con new.
|
inlinevirtual |
Elimina el arco arc.
La operación elimina del grafo el arco arc y luego libera su memoria.
El arco debe pertenecer al grafo y no se realiza ninguna verificación al respecto.
| [in] | arc | puntero al arco a eliminar. |
Hace referencia a Aleph::DynSetTree< Key, Tree, Compare >::remove().
Gráfico de llamadas para esta función:| Aleph::List_SGraph< __Graph_Node, __Graph_Arc >::GRAPH_INSERTION_METHODS |
Crea un nuevo arco entre dos nodos.
Este método aparta memoria para un nuevo arco entre los nodos previamente definidos, src_node y tgt_node con valor de contenido en el arco arc_info.
Los nodos deben haber sido previamente insertados en el grafo. A este respecto, no se hace ninguna verificación. El operador de asignación de la clase Arc::Arc_Type debe haber sido definido.
No se realiza ninguna verificación de existencia previa de un arco entre los nodos involucrados (esto es necesario para operar con multigrafos).
| [in] | src | puntero al nodo origen. |
| [in] | tgt | puntero al nodo destino. |
| [in] | arc_info | valor de información a ser copiado en el arco. |
| bad_alloc | si no hay memoria para el arco. |