diff -r ee17030e5f47 -r 4f54d89fa9d2 src/work/bfs_iterator.hh --- a/src/work/bfs_iterator.hh Sun Mar 07 19:33:34 2004 +0000 +++ b/src/work/bfs_iterator.hh Mon Mar 08 12:29:07 2004 +0000 @@ -623,10 +623,11 @@ }; - template */ > class BfsIterator5 { typedef typename GraphWrapper::NodeIt NodeIt; + typedef typename GraphWrapper::OutEdgeIt OutEdgeIt; GraphWrapper G; std::queue bfs_queue; ReachedMap& reached; @@ -640,6 +641,13 @@ BfsIterator5(const GraphWrapper& _G) : G(_G), reached(*(new ReachedMap(G /*, false*/))), own_reached_map(true) { } +// BfsIterator5(const typename GraphWrapper::BaseGraph& _G, +// ReachedMap& _reached) : +// G(_G), reached(_reached), +// own_reached_map(false) { } +// BfsIterator5(const typename GraphWrapper::BaseGraph& _G) : +// G(_G), reached(*(new ReachedMap(G /*, false*/))), +// own_reached_map(true) { } ~BfsIterator5() { if (own_reached_map) delete &reached; } void pushAndSetReached(NodeIt s) { reached.set(s, true); @@ -660,7 +668,7 @@ bfs_queue.push(s); } } - BfsIterator5& + BfsIterator5& operator++() { if (G.valid(actual_edge)/*.valid()*/) { /*++*/G.next(actual_edge); @@ -758,10 +766,11 @@ const std::stack& getDfsStack() const { return dfs_stack; } }; - template */ > class DfsIterator5 { typedef typename GraphWrapper::NodeIt NodeIt; + typedef typename GraphWrapper::OutEdgeIt OutEdgeIt; GraphWrapper G; std::stack dfs_stack; bool b_node_newly_reached; @@ -782,7 +791,7 @@ reached.set(s, true); dfs_stack.push(G.template first(s)); } - DfsIterator5& + DfsIterator5& operator++() { actual_edge=dfs_stack.top(); //actual_node=G.aNode(actual_edge);