1.1 --- a/lemon/dfs.h Thu Nov 01 19:49:51 2018 +0100
1.2 +++ b/lemon/dfs.h Sun Aug 17 15:02:03 2008 +0200
1.3 @@ -181,7 +181,7 @@
1.4 //Indicates if _processed is locally allocated (true) or not.
1.5 bool local_processed;
1.6
1.7 - std::vector<typename Digraph::OutArcIt> _stack;
1.8 + std::vector<typename Digraph::Arc> _stack;
1.9 int _stack_head;
1.10
1.11 //Creates the maps if necessary.
1.12 @@ -457,7 +457,8 @@
1.13 {
1.14 _reached->set(s,true);
1.15 _pred->set(s,INVALID);
1.16 - OutArcIt e(*G,s);
1.17 + Arc e;
1.18 + G->firstOut(e,s);
1.19 if(e!=INVALID) {
1.20 _stack[++_stack_head]=e;
1.21 _dist->set(s,_stack_head);
1.22 @@ -484,19 +485,19 @@
1.23 _pred->set(m,e);
1.24 _reached->set(m,true);
1.25 ++_stack_head;
1.26 - _stack[_stack_head] = OutArcIt(*G, m);
1.27 + G->firstOut(_stack[_stack_head],m);
1.28 _dist->set(m,_stack_head);
1.29 }
1.30 else {
1.31 m=G->source(e);
1.32 - ++_stack[_stack_head];
1.33 + G->nextOut(_stack[_stack_head]);
1.34 }
1.35 while(_stack_head>=0 && _stack[_stack_head]==INVALID) {
1.36 _processed->set(m,true);
1.37 --_stack_head;
1.38 if(_stack_head>=0) {
1.39 m=G->source(_stack[_stack_head]);
1.40 - ++_stack[_stack_head];
1.41 + G->nextOut(_stack[_stack_head]);
1.42 }
1.43 }
1.44 return e;
1.45 @@ -510,7 +511,7 @@
1.46 ///is empty.
1.47 OutArcIt nextArc() const
1.48 {
1.49 - return _stack_head>=0?_stack[_stack_head]:INVALID;
1.50 + return OutArcIt(*G,_stack_head>=0?_stack[_stack_head]:INVALID);
1.51 }
1.52
1.53 ///Returns \c false if there are nodes to be processed.