equal
deleted
inserted
replaced
57 |
57 |
58 protected: |
58 protected: |
59 |
59 |
60 typedef typename Graph::Node Node; |
60 typedef typename Graph::Node Node; |
61 typedef typename Graph::Edge Edge; |
61 typedef typename Graph::Edge Edge; |
|
62 typedef typename Graph::UndirEdge UndirEdge; |
62 typedef typename Graph::UndirEdgeIt UndirEdgeIt; |
63 typedef typename Graph::UndirEdgeIt UndirEdgeIt; |
63 typedef typename Graph::NodeIt NodeIt; |
64 typedef typename Graph::NodeIt NodeIt; |
64 typedef typename Graph::IncEdgeIt IncEdgeIt; |
65 typedef typename Graph::IncEdgeIt IncEdgeIt; |
65 |
66 |
66 typedef UnionFindEnum<Node, Graph::template NodeMap> UFE; |
67 typedef UnionFindEnum<Node, Graph::template NodeMap> UFE; |
163 ///\c \c g.oppositeNode(v,map[v])==u holds, and now some edge |
164 ///\c \c g.oppositeNode(v,map[v])==u holds, and now some edge |
164 ///joining \c u to \c v will be an edge of the matching. |
165 ///joining \c u to \c v will be an edge of the matching. |
165 template<typename NMapE> |
166 template<typename NMapE> |
166 void readNMapEdge(NMapE& map) { |
167 void readNMapEdge(NMapE& map) { |
167 for(NodeIt v(g); v!=INVALID; ++v) { |
168 for(NodeIt v(g); v!=INVALID; ++v) { |
168 UndirEdge e=map[v]; |
169 UndirEdge e=map[v]; |
169 if ( e!=INVALID ) |
170 if ( e!=INVALID ) |
170 _mate.set(v,g.oppositeNode(v,e)); |
171 _mate.set(v,g.oppositeNode(v,e)); |
171 } |
172 } |
172 } |
173 } |
173 |
174 |