1.1 --- a/src/lemon/undir_graph_extender.h Fri Jan 07 08:50:38 2005 +0000
1.2 +++ b/src/lemon/undir_graph_extender.h Fri Jan 07 18:53:02 2005 +0000
1.3 @@ -140,53 +140,55 @@
1.4
1.5 template <typename E>
1.6 void _dirFirstOut(E &e, const Node &n) const {
1.7 - Parent::firstOut(e,n);
1.8 + Parent::firstIn(e,n);
1.9 if( UndirEdge(e) != INVALID ) {
1.10 - e.forward = true;
1.11 + e.forward = false;
1.12 }
1.13 else {
1.14 - Parent::firstIn(e,n);
1.15 - e.forward = false;
1.16 + Parent::firstOut(e,n);
1.17 + e.forward = true;
1.18 }
1.19 }
1.20 template <typename E>
1.21 void _dirFirstIn(E &e, const Node &n) const {
1.22 - Parent::firstIn(e,n);
1.23 + Parent::firstOut(e,n);
1.24 if( UndirEdge(e) != INVALID ) {
1.25 - e.forward = true;
1.26 + e.forward = false;
1.27 }
1.28 else {
1.29 - Parent::firstOut(e,n);
1.30 - e.forward = false;
1.31 + Parent::firstIn(e,n);
1.32 + e.forward = true;
1.33 }
1.34 }
1.35
1.36 template <typename E>
1.37 void _dirNextOut(E &e) const {
1.38 - if( e.forward ) {
1.39 + if( ! e.forward ) {
1.40 + Node n = Parent::target(e);
1.41 + Parent::nextIn(e);
1.42 + if( UndirEdge(e) == INVALID ) {
1.43 + Parent::firstOut(e, n);
1.44 + e.forward = true;
1.45 + }
1.46 + }
1.47 + else {
1.48 + Parent::nextOut(e);
1.49 + }
1.50 + }
1.51 + template <typename E>
1.52 + void _dirNextIn(E &e) const {
1.53 + if( ! e.forward ) {
1.54 + Node n = Parent::source(e);
1.55 Parent::nextOut(e);
1.56 if( UndirEdge(e) == INVALID ) {
1.57 - Parent::firstIn(e, Parent::source(e));
1.58 - e.forward = false;
1.59 + Parent::firstIn(e, n);
1.60 + e.forward = true;
1.61 }
1.62 }
1.63 else {
1.64 Parent::nextIn(e);
1.65 }
1.66 }
1.67 - template <typename E>
1.68 - void _dirNextIn(E &e) const {
1.69 - if( e.forward ) {
1.70 - Parent::nextIn(e);
1.71 - if( UndirEdge(e) == INVALID ) {
1.72 - Parent::firstOut(e, Parent::target(e));
1.73 - e.forward = false;
1.74 - }
1.75 - }
1.76 - else {
1.77 - Parent::nextOut(e);
1.78 - }
1.79 - }
1.80
1.81 public:
1.82
1.83 @@ -226,7 +228,7 @@
1.84 }
1.85
1.86
1.87 - int maxId(Node n) const {
1.88 + int maxId(Node) const {
1.89 return Parent::maxId(Node());
1.90 }
1.91