# HG changeset patch # User klao # Date 1105123982 0 # Node ID 7a24bb2e748007e5bf6642cbcbb9aef473f5daf2 # Parent bd97feae7d90abc81ae225571e38729f1bdfeabc Nasty bug in undir_graph_extender.h diff -r bd97feae7d90 -r 7a24bb2e7480 src/lemon/undir_graph_extender.h --- a/src/lemon/undir_graph_extender.h Fri Jan 07 08:50:38 2005 +0000 +++ b/src/lemon/undir_graph_extender.h Fri Jan 07 18:53:02 2005 +0000 @@ -140,53 +140,55 @@ template void _dirFirstOut(E &e, const Node &n) const { - Parent::firstOut(e,n); + Parent::firstIn(e,n); if( UndirEdge(e) != INVALID ) { - e.forward = true; + e.forward = false; } else { - Parent::firstIn(e,n); - e.forward = false; + Parent::firstOut(e,n); + e.forward = true; } } template void _dirFirstIn(E &e, const Node &n) const { - Parent::firstIn(e,n); + Parent::firstOut(e,n); if( UndirEdge(e) != INVALID ) { - e.forward = true; + e.forward = false; } else { - Parent::firstOut(e,n); - e.forward = false; + Parent::firstIn(e,n); + e.forward = true; } } template void _dirNextOut(E &e) const { - if( e.forward ) { + if( ! e.forward ) { + Node n = Parent::target(e); + Parent::nextIn(e); + if( UndirEdge(e) == INVALID ) { + Parent::firstOut(e, n); + e.forward = true; + } + } + else { + Parent::nextOut(e); + } + } + template + void _dirNextIn(E &e) const { + if( ! e.forward ) { + Node n = Parent::source(e); Parent::nextOut(e); if( UndirEdge(e) == INVALID ) { - Parent::firstIn(e, Parent::source(e)); - e.forward = false; + Parent::firstIn(e, n); + e.forward = true; } } else { Parent::nextIn(e); } } - template - void _dirNextIn(E &e) const { - if( e.forward ) { - Parent::nextIn(e); - if( UndirEdge(e) == INVALID ) { - Parent::firstOut(e, Parent::target(e)); - e.forward = false; - } - } - else { - Parent::nextOut(e); - } - } public: @@ -226,7 +228,7 @@ } - int maxId(Node n) const { + int maxId(Node) const { return Parent::maxId(Node()); } diff -r bd97feae7d90 -r 7a24bb2e7480 src/work/jacint/bug.cc --- a/src/work/jacint/bug.cc Fri Jan 07 08:50:38 2005 +0000 +++ b/src/work/jacint/bug.cc Fri Jan 07 18:53:02 2005 +0000 @@ -1,4 +1,3 @@ -//lasd megjegyzes a 49-es sorban #include #include #include @@ -6,23 +5,28 @@ #include #include +#include #include using namespace lemon; +using namespace std; -int main(int, char **) { - typedef UndirListGraph Graph; +int main() { + + typedef UndirSmartGraph Graph; typedef Graph::Edge Edge; typedef Graph::UndirEdgeIt UndirEdgeIt; typedef Graph::IncEdgeIt IncEdgeIt; typedef Graph::NodeIt NodeIt; typedef Graph::Node Node; + + typedef Graph::OutEdgeIt OutEdgeIt; Graph G; - G.clear(); + // G.clear(); std::vector nodes; for (int i=0; i<5; ++i) nodes.push_back(G.addNode()); @@ -35,7 +39,8 @@ G.addEdge(nodes[2], nodes[4]); for(UndirEdgeIt e(G); e!=INVALID; ++e) { - std::cout<