Changeset 628:aa1804409f29 in lemon for lemon/gomory_hu.h
- Timestamp:
- 04/14/09 10:35:38 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/gomory_hu.h
r593 r628 144 144 _root = NodeIt(_graph); 145 145 for (NodeIt n(_graph); n != INVALID; ++n) { 146 _pred->set(n, _root);147 _order->set(n, -1);148 } 149 _pred->set(_root, INVALID);150 _weight->set(_root, std::numeric_limits<Value>::max());146 (*_pred)[n] = _root; 147 (*_order)[n] = -1; 148 } 149 (*_pred)[_root] = INVALID; 150 (*_weight)[_root] = std::numeric_limits<Value>::max(); 151 151 } 152 152 … … 165 165 fa.runMinCut(); 166 166 167 _weight->set(n, fa.flowValue());167 (*_weight)[n] = fa.flowValue(); 168 168 169 169 for (NodeIt nn(_graph); nn != INVALID; ++nn) { 170 170 if (nn != n && fa.minCut(nn) && (*_pred)[nn] == pn) { 171 _pred->set(nn, n);171 (*_pred)[nn] = n; 172 172 } 173 173 } 174 174 if ((*_pred)[pn] != INVALID && fa.minCut((*_pred)[pn])) { 175 _pred->set(n, (*_pred)[pn]);176 _pred->set(pn, n);177 _weight->set(n, (*_weight)[pn]);178 _weight->set(pn, fa.flowValue());179 } 180 } 181 182 _order->set(_root, 0);175 (*_pred)[n] = (*_pred)[pn]; 176 (*_pred)[pn] = n; 177 (*_weight)[n] = (*_weight)[pn]; 178 (*_weight)[pn] = fa.flowValue(); 179 } 180 } 181 182 (*_order)[_root] = 0; 183 183 int index = 1; 184 184 … … 191 191 } 192 192 while (!st.empty()) { 193 _order->set(st.back(), index++);193 (*_order)[st.back()] = index++; 194 194 st.pop_back(); 195 195 } … … 310 310 311 311 typename Graph::template NodeMap<bool> reached(_graph, false); 312 reached .set(_root, true);312 reached[_root] = true; 313 313 cutMap.set(_root, !s_root); 314 reached .set(rn, true);314 reached[rn] = true; 315 315 cutMap.set(rn, s_root); 316 316
Note: See TracChangeset
for help on using the changeset viewer.