ROSE  0.11.96.11
Public Member Functions | List of all members
Sawyer::Container::Algorithm::DepthFirstForwardGraphTraversal< Graph > Class Template Reference

Description

template<class Graph>
class Sawyer::Container::Algorithm::DepthFirstForwardGraphTraversal< Graph >

Depth-first, forward traversal for all event types.

This traversal follows edges in their natural order from source to target visiting children before siblings. The advancing methods and operators stop at the next event that matches a list of significant event types supplied as a constructor argument.

See also
GraphTraversal

Definition at line 823 of file GraphTraversal.h.

#include <GraphTraversal.h>

Inheritance diagram for Sawyer::Container::Algorithm::DepthFirstForwardGraphTraversal< Graph >:
Inheritance graph
[legend]
Collaboration diagram for Sawyer::Container::Algorithm::DepthFirstForwardGraphTraversal< Graph >:
Collaboration graph
[legend]

Public Member Functions

 DepthFirstForwardGraphTraversal (Graph &graph, typename GraphTraits< Graph >::VertexIterator startVertex, unsigned significantEvents=ALL_EVENTS)
 Start traversal at specified vertex.
 
 DepthFirstForwardGraphTraversal (Graph &graph, typename GraphTraits< Graph >::EdgeIterator startEdge, unsigned significantEvents=ALL_EVENTS)
 Start traversal at specified edge.
 
DepthFirstForwardGraphTraversaloperator++ ()
 Advance traversal to next event.
 
- Public Member Functions inherited from Sawyer::Container::Algorithm::GraphTraversal< Graph, DepthFirstTraversalTag, ForwardTraversalTag >
 GraphTraversal (Graph &graph, unsigned significantEvents)
 Construct traversal for graph. More...
 
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. More...
 
TraversalEvent event () const
 Current event on which traversal is stopped. More...
 
VertexIterator vertex () const
 Vertex to which traversal is pointing. More...
 
EdgeIterator edge () const
 Edge to which traversal is pointing. More...
 
bool isAtEnd () const
 Returns true when traversal reaches the end. More...
 
bool hasNext () const
 Returns true when a traversal can be advanced. More...
 
TraversalEvent advance ()
 Advance traversal to next interesting event. More...
 
void skipChildren ()
 Causes traversal to skip children. More...
 
void allowRediscovery (VertexIterator vertex)
 Allow a vertex to be discovered again. More...
 
bool isDiscovered (VertexIterator vertex) const
 True if the vertex has been discovered. More...
 
bool isVisited (EdgeIterator edge) const
 True if the edge has been entered. More...
 
 operator unspecified_bool () const
 Type for Boolean context. More...
 
void mapVertices (Functor &f)
 Call the specified functor for each vertex. More...
 
void mapVertices (const Functor &f)
 Call the specified functor for each vertex. More...
 
void mapEdges (Functor &f)
 Call the specified functor for each edge. More...
 
void mapEdges (const Functor &f)
 Call the specified functor for each edge. More...
 

Additional Inherited Members

- Public Types inherited from Sawyer::Container::Algorithm::GraphTraversal< Graph, DepthFirstTraversalTag, ForwardTraversalTag >
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, DepthFirstTraversalTag, ForwardTraversalTag >
typedef std::list< Work > WorkList
 
- Protected Member Functions inherited from Sawyer::Container::Algorithm::GraphTraversal< Graph, DepthFirstTraversalTag, ForwardTraversalTag >
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 ()
 
- Protected Attributes inherited from Sawyer::Container::Algorithm::GraphTraversal< Graph, DepthFirstTraversalTag, ForwardTraversalTag >
WorkList workList_
 

The documentation for this class was generated from the following file: