#include <tpl_graph_utils.H>
Métodos públicos | |
Depth_First_Traversal (SA &&__sa=SA()) | |
Depth_First_Traversal (SA &__sa) | |
size_t | operator() (GT &g, Operation &&op=Operation()) |
size_t | operator() (GT &g, Operation &op) |
size_t | operator() (GT &g, typename GT::Node *sn, Operation &&op=Operation()) |
size_t | operator() (GT &g, typename GT::Node *sn, Operation &op) |
Recorrido genérico en profundidad de un grafo.
Esta clase recorre en profundidad el grafo g. Por cada nodo visitado, se invoca a una función cuyo prototipo debe ser:
bool visitar(GT & g, typename GT::Node * p, typename GT::Arc * a)
Cuyos parámetros se describen a continuación:
La clase toma dos parámetros tipo:
La operación de visita tiene la siguiente estructura:
El primer parámetro g es el grafo. El segundo node es el nodo actual de visita. Finalmente, el tercero arc es el arco desde el cual se llega a node. Este valor es NULL en el caso del primer nodo que se visite.
Si la función retorna true, entonces el recorrido se detiene; es decir, no se prosigue el recorrido sobre el grafo. Si la función retorna false, entonces el recorrido en profundidad prosigue y se detendría una vez que todos los arcos del grafo hayan sido vistos.
El recorrido utiliza el bit depth_first, el cual es iniciado al principio del algoritmo.
|
inline |
Constructor de Functor Depth_First_Traversal. El parámetro es el filtro de arcos del iterador interno.
|
inline |
Constructor de Functor Depth_First_Traversal. El parámetro es el filtro de arcos del iterador interno.
|
inline |
Invoca al recorrido en profundidad.
[in] | g | el grafo a explorar. |
[in] | __op | la operación de visita. |
|
inline |
Invoca al recorrido en profundidad con inicio desde un nodo particular.
[in] | g | el grafo a explorar. |
[in] | sn | el nodo por donde se inicia el recorrido. |
[in] | __op | operación de visita. |