C创建有序优先级队列

Pez*_*kow 4 c algorithm priority-queue data-structures

我正在尝试实现dijkstra的路径查找算法,并需要某种优先级队列来存储信息.

在过去,例如fifo或filo PQ我只是使用一个数组然后两个指向当前插入和当前"外观"位置的指针然后"移除"并且项目将外观位置向上移动一次.

然而对于dijkstra来说,我需要一个按重量(或当前距离)排序的PQ然后查看PQ顶部的PQ,我将如何在C中实现它?

谢谢你的时间!

编辑:人们提到二进制堆,你介意给出一个如何开始的轻微提示吗?

Fre*_*Foo 5

最简单的选择是基于C数组实现二进制堆.