Priority queue: Difference between revisions
Content added Content deleted
(Added XLISP) |
m (→{{header|C}}) |
||
Line 275: | Line 275: | ||
h->nodes[1] = h->nodes[h->len]; |
h->nodes[1] = h->nodes[h->len]; |
||
⚫ | |||
h->len--; |
h->len--; |
||
Line 283: | Line 282: | ||
k = i; |
k = i; |
||
j = 2 * i; |
j = 2 * i; |
||
if (j <= h->len && h->nodes[j].priority < priority) { |
if (j <= h->len && h->nodes[j].priority < h->nodes[k].priority) { |
||
k = j; |
k = j; |
||
} |
} |
||
Line 292: | Line 291: | ||
break; |
break; |
||
} |
} |
||
node_t swap_tmp = h->nodes[i]; |
|||
h->nodes[i] = h->nodes[k]; |
h->nodes[i] = h->nodes[k]; |
||
⚫ | |||
i = k; |
i = k; |
||
} |
} |
||
h->nodes[i] = h->nodes[h->len + 1]; |
|||
return data; |
return data; |
||
} |
} |