lemon/goldberg_tarjan.h
changeset 2521 05c0ba99cc27
parent 2514 57143c09dc20
child 2522 616c019215c4
equal deleted inserted replaced
0:be174664b4a0 1:7bd08d41d5a9
   393   private:
   393   private:
   394     
   394     
   395     void createStructures() {
   395     void createStructures() {
   396       _node_num = countNodes(_graph);
   396       _node_num = countNodes(_graph);
   397 
   397 
   398       _max_tree_size = (double(_node_num) * double(_node_num)) / 
   398       _max_tree_size = int((double(_node_num) * double(_node_num)) / 
   399 	double(countEdges(_graph));
   399 			   double(countEdges(_graph)));
   400 
   400 
   401       if (!_flow) {
   401       if (!_flow) {
   402 	_flow = Traits::createFlowMap(_graph);
   402 	_flow = Traits::createFlowMap(_graph);
   403 	_local_flow = true;
   403 	_local_flow = true;
   404       }
   404       }
   825 	queue.swap(nqueue);
   825 	queue.swap(nqueue);
   826       }
   826       }
   827       _level->initFinish();
   827       _level->initFinish();
   828 
   828 
   829       for (NodeIt n(_graph); n != INVALID; ++n) {
   829       for (NodeIt n(_graph); n != INVALID; ++n) {
   830 	if ((*_excess)[n] > 0 && _target != n) {
   830 	if (!reached[n]) {
       
   831 	  _level->markToBottom(n);
       
   832 	} else if ((*_excess)[n] > 0 && _target != n) {
   831 	  _level->activate(n);
   833 	  _level->activate(n);
   832 	}
   834 	}
   833       }
   835       }
   834 
   836 
   835       Node n;
   837       Node n;