Priority queue: Difference between revisions
Content deleted Content added
Line 279: | Line 279: | ||
i = 1; |
i = 1; |
||
while (1) { |
while (i!=h->len+1) { |
||
k = |
k = h->len+1; |
||
j = 2 * i; |
j = 2 * i; |
||
if (j <= h->len && h->nodes[j].priority < h->nodes[k].priority) { |
if (j <= h->len && h->nodes[j].priority < h->nodes[k].priority) { |
||
Line 288: | Line 288: | ||
k = j + 1; |
k = j + 1; |
||
} |
} |
||
if (k == i) { |
|||
break; |
|||
} |
|||
node_t swap_tmp = h->nodes[i]; |
|||
h->nodes[i] = h->nodes[k]; |
h->nodes[i] = h->nodes[k]; |
||
h->nodes[k] = swap_tmp ; |
|||
i = k; |
i = k; |
||
} |
} |