Changeset 64:72bd463289a9 in lemon-0.x for src/work/edmonds_karp.hh
- Timestamp:
- 02/05/04 16:06:45 (19 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@79
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/work/edmonds_karp.hh
r59 r64 42 42 } 43 43 bool valid() const { return sym.valid(); } 44 void augment( constT a) const {44 void augment(T a) const { 45 45 if (resG->G.aNode(sym)==resG->G.tail(sym)) { 46 46 resG->flow.set(sym, resG->flow.get(sym)+a); … … 57 57 //OutEdgeIt(const OutEdgeIt& e) { resG=e.resG; sym=e.sym; } 58 58 private: 59 OutEdgeIt(const ResGraph<Graph, T, FlowMap, CapacityMap>& _resG, constNodeIt v) {59 OutEdgeIt(const ResGraph<Graph, T, FlowMap, CapacityMap>& _resG, NodeIt v) { 60 60 resG=&_resG; 61 61 sym=resG->G.template first<OldSymEdgeIt>(v); … … 70 70 }; 71 71 72 void getFirst(OutEdgeIt& e, constNodeIt v) const {72 void getFirst(OutEdgeIt& e, NodeIt v) const { 73 73 e=OutEdgeIt(*this, v); 74 74 } … … 83 83 84 84 template< typename It > 85 It first( constNodeIt v) const {85 It first(NodeIt v) const { 86 86 It e; 87 87 getFirst(e, v); … … 89 89 } 90 90 91 NodeIt tail( constEdgeIt e) const { return G.aNode(e.sym); }92 NodeIt head( constEdgeIt e) const { return G.bNode(e.sym); }93 94 NodeIt aNode( constOutEdgeIt e) const { return G.aNode(e.sym); }95 NodeIt bNode( constOutEdgeIt e) const { return G.bNode(e.sym); }96 97 int id( constNodeIt v) const { return G.id(v); }91 NodeIt tail(EdgeIt e) const { return G.aNode(e.sym); } 92 NodeIt head(EdgeIt e) const { return G.bNode(e.sym); } 93 94 NodeIt aNode(OutEdgeIt e) const { return G.aNode(e.sym); } 95 NodeIt bNode(OutEdgeIt e) const { return G.bNode(e.sym); } 96 97 int id(NodeIt v) const { return G.id(v); } 98 98 99 99 template <typename ValueType> … … 102 102 public: 103 103 NodeMap(const ResGraph<Graph, T, FlowMap, CapacityMap>& _G) : node_map(_G.G) { } 104 NodeMap(const ResGraph<Graph, T, FlowMap, CapacityMap>& _G, constValueType a) : node_map(_G.G, a) { }105 void set( const NodeIt nit, constValueType a) { node_map.set(nit, a); }106 ValueType get( constNodeIt nit) const { return node_map.get(nit); }104 NodeMap(const ResGraph<Graph, T, FlowMap, CapacityMap>& _G, ValueType a) : node_map(_G.G, a) { } 105 void set(NodeIt nit, ValueType a) { node_map.set(nit, a); } 106 ValueType get(NodeIt nit) const { return node_map.get(nit); } 107 107 }; 108 108 … … 117 117 typedef typename Graph::InEdgeIt InEdgeIt; 118 118 const Graph& G; 119 constNodeIt s;120 constNodeIt t;119 NodeIt s; 120 NodeIt t; 121 121 FlowMap& flow; 122 122 const CapacityMap& capacity; … … 125 125 typedef typename AugGraph::EdgeIt AugEdgeIt; 126 126 public: 127 MaxFlow(const Graph& _G, const NodeIt _s, constNodeIt _t, FlowMap& _flow, const CapacityMap& _capacity) : G(_G), s(_s), t(_t), flow(_flow), capacity(_capacity) { }127 MaxFlow(const Graph& _G, NodeIt _s, NodeIt _t, FlowMap& _flow, const CapacityMap& _capacity) : G(_G), s(_s), t(_t), flow(_flow), capacity(_capacity) { } 128 128 bool augment() { 129 129 AugGraph res_graph(G, flow, capacity);
Note: See TracChangeset
for help on using the changeset viewer.