X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=mtp.git;a=blobdiff_plain;f=mtp_graph.cc;h=e69d4d675a6bdd170e81d5819c9035ddbd0c4710;hp=4cfd1f89b83954bbe89a709fafc195455aa66fb9;hb=cbe26b67e99f4151dec8cb088e6bfd5561dad7eb;hpb=b7b7ab505a1cd374370a03cc61ca08f92ab8c075 diff --git a/mtp_graph.cc b/mtp_graph.cc index 4cfd1f8..e69d4d6 100644 --- a/mtp_graph.cc +++ b/mtp_graph.cc @@ -289,7 +289,7 @@ void MTPGraph::find_shortest_path() { _source->distance_from_source = 0; _source->decrease_distance_in_heap(_heap); - while(heap_size > 1) { + while(heap_size > 1) { // Get the closest to the source v = _heap[0]; @@ -457,6 +457,11 @@ void MTPGraph::compute_dp_ordering() { } while(already_processed < front) { + // Here, nodes before already_processed can be ignored, nodes + // before front were set to 0 predecessors during the previous + // iteration. During this new iteration, we have to visit the + // successors of these ones only, since they are the only ones + // which may end up with no predecessors. new_front = front; while(already_processed < front) { v = *(already_processed++);