Changeset 2624:dc4dd5fc0e25 in lemon-0.x
- Timestamp:
- 10/08/08 11:17:01 (16 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@3509
- Location:
- lemon
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/hao_orlin.h
r2553 r2624 22 22 #include <vector> 23 23 #include <list> 24 #include <ext/hash_set>25 24 #include <limits> 26 25 27 26 #include <lemon/maps.h> 28 27 #include <lemon/graph_utils.h> 29 #include <lemon/graph_adaptor.h> 30 #include <lemon/iterable_maps.h> 28 #include <lemon/tolerance.h> 31 29 32 30 /// \file … … 294 292 _excess->set(u, (*_excess)[u] + (*_capacity)[e]); 295 293 if (!(*_active)[u] && u != _source) { 296 activate(u); 297 } 298 } 299 } 294 activate(u); 295 } 296 } 297 } 298 300 299 if ((*_active)[target]) { 301 300 deactivate(target); … … 308 307 } 309 308 } 310 311 309 312 310 while (true) { … … 463 461 { 464 462 Node new_target; 465 if ((*_prev)[target] != INVALID) { 466 _last[(*_bucket)[target]] = (*_prev)[target]; 467 _next->set((*_prev)[target], INVALID); 468 new_target = (*_prev)[target]; 463 if ((*_prev)[target] != INVALID || (*_next)[target] != INVALID) { 464 if ((*_next)[target] == INVALID) { 465 _last[(*_bucket)[target]] = (*_prev)[target]; 466 new_target = (*_prev)[target]; 467 } else { 468 _prev->set((*_next)[target], (*_prev)[target]); 469 new_target = (*_next)[target]; 470 } 471 if ((*_prev)[target] == INVALID) { 472 _first[(*_bucket)[target]] = (*_next)[target]; 473 } else { 474 _next->set((*_prev)[target], (*_next)[target]); 475 } 469 476 } else { 470 477 _sets.back().pop_back(); … … 762 769 { 763 770 Node new_target; 764 if ((*_prev)[target] != INVALID) { 765 _last[(*_bucket)[target]] = (*_prev)[target]; 766 _next->set((*_prev)[target], INVALID); 767 new_target = (*_prev)[target]; 771 if ((*_prev)[target] != INVALID || (*_next)[target] != INVALID) { 772 if ((*_next)[target] == INVALID) { 773 _last[(*_bucket)[target]] = (*_prev)[target]; 774 new_target = (*_prev)[target]; 775 } else { 776 _prev->set((*_next)[target], (*_prev)[target]); 777 new_target = (*_next)[target]; 778 } 779 if ((*_prev)[target] == INVALID) { 780 _first[(*_bucket)[target]] = (*_next)[target]; 781 } else { 782 _next->set((*_prev)[target], (*_next)[target]); 783 } 768 784 } else { 769 785 _sets.back().pop_back(); … … 851 867 _node_num = countNodes(_graph); 852 868 853 _first.resize(_node_num );854 _last.resize(_node_num );855 856 _dormant.resize(_node_num );869 _first.resize(_node_num + 1); 870 _last.resize(_node_num + 1); 871 872 _dormant.resize(_node_num + 1); 857 873 858 874 if (!_flow) { -
lemon/min_cost_arborescence.h
r2553 r2624 644 644 delete _pred; 645 645 } 646 if ( !_edge_order) {646 if (_edge_order) { 647 647 delete _edge_order; 648 648 } … … 650 650 delete _node_order; 651 651 } 652 if ( !_cost_edges) {652 if (_cost_edges) { 653 653 delete _cost_edges; 654 654 } 655 if ( !_heap) {655 if (_heap) { 656 656 delete _heap; 657 657 } 658 if ( !_heap_cross_ref) {658 if (_heap_cross_ref) { 659 659 delete _heap_cross_ref; 660 660 }
Note: See TracChangeset
for help on using the changeset viewer.