ROSE 0.11.145.147
|
Base class for graph edge traversals.
Edge traversals increment their current position stopping only when an edge is entered. They have dereference ("*") and arrow ("->") operators and a next method that return edge nodes from the graph.
Definition at line 1116 of file GraphTraversal.h.
#include <Sawyer/GraphTraversal.h>
Public Member Functions | |
GraphTraits< Graph >::EdgeIterator::Reference | operator* () |
Return reference to current edge. | |
GraphTraits< Graph >::EdgeIterator::Pointer | operator-> () |
Return pointer to current edge. | |
GraphTraits< Graph >::EdgeIterator::Reference | next () |
Return reference to current edge and advance. | |
Public Member Functions inherited from Sawyer::Container::Algorithm::GraphTraversal< Graph, Order, Direction > | |
GraphTraversal (Graph &graph, unsigned significantEvents) | |
Construct traversal for graph. | |
void | start (VertexIterator startVertex) |
Restart the traversal at the specified vertex. | |
void | start (EdgeIterator startEdge) |
Restart the traversal at the specified edge. | |
Graph & | graph () const |
The graph over which iteration occurs. | |
TraversalEvent | event () const |
Current event on which traversal is stopped. | |
VertexIterator | vertex () const |
Vertex to which traversal is pointing. | |
EdgeIterator | edge () const |
Edge to which traversal is pointing. | |
bool | isAtEnd () const |
Returns true when traversal reaches the end. | |
bool | hasNext () const |
Returns true when a traversal can be advanced. | |
TraversalEvent | advance () |
Advance traversal to next interesting event. | |
void | skipChildren () |
Causes traversal to skip children. | |
void | allowRediscovery (VertexIterator vertex) |
Allow a vertex to be discovered again. | |
bool | isDiscovered (VertexIterator vertex) const |
True if the vertex has been discovered. | |
bool | isVisited (EdgeIterator edge) const |
True if the edge has been entered. | |
operator unspecified_bool () const | |
Type for Boolean context. | |
void | mapVertices (Functor &f) |
Call the specified functor for each vertex. | |
void | mapVertices (const Functor &f) |
Call the specified functor for each vertex. | |
void | mapEdges (Functor &f) |
Call the specified functor for each edge. | |
void | mapEdges (const Functor &f) |
Call the specified functor for each edge. | |
Protected Member Functions | |
GraphEdgeTraversal (Graph &graph) | |
Protected Member Functions inherited from Sawyer::Container::Algorithm::GraphTraversal< Graph, Order, Direction > | |
Work & | current () |
const Work & | current () const |
bool | isSignificant (TraversalEvent event) const |
void | setDiscovered (VertexIterator vertex, bool isDiscovered=true) |
void | setVisited (EdgeIterator edge, bool isVisited=true) |
void | clear () |
Additional Inherited Members | |
Public Types inherited from Sawyer::Container::Algorithm::GraphTraversal< Graph, Order, Direction > | |
typedef Graph | Graph |
typedef GraphTraits< Graph >::VertexIterator | VertexIterator |
Const or non-const vertex node iterator. | |
typedef GraphTraits< Graph >::EdgeIterator | EdgeIterator |
Const or non-const edge node iterator. | |
Protected Types inherited from Sawyer::Container::Algorithm::GraphTraversal< Graph, Order, Direction > | |
typedef std::list< Work > | WorkList |
Protected Attributes inherited from Sawyer::Container::Algorithm::GraphTraversal< Graph, Order, Direction > | |
WorkList | workList_ |
|
inlineexplicitprotected |
Definition at line 1118 of file GraphTraversal.h.
|
inline |
Return reference to current edge.
Definition at line 1122 of file GraphTraversal.h.
References Sawyer::Container::Algorithm::GraphTraversal< Graph, Order, Direction >::edge().
|
inline |
Return pointer to current edge.
Definition at line 1127 of file GraphTraversal.h.
References Sawyer::Container::Algorithm::GraphTraversal< Graph, Order, Direction >::edge().
|
inline |
Return reference to current edge and advance.
Definition at line 1132 of file GraphTraversal.h.
References Sawyer::Container::Algorithm::GraphTraversal< Graph, Order, Direction >::advance(), and Sawyer::Container::Algorithm::GraphTraversal< Graph, Order, Direction >::vertex().