我正在尝试实现 dijkstra 的寻路算法,并且需要某种优先级队列来存储信息。
在过去,例如 fifo 或 filo PQ,我只使用了一个数组,然后使用了两个指向当前插入和当前“查找”位置的指针,然后是“删除”,并且项目将查找位置向上移动一次。
但是对于dijkstra,我需要一个按重量(或当前距离)排序的PQ,然后查看PQ顶部的那个,我将如何在C中实现它?
谢谢你的时间!
编辑:人们提到了二进制堆,你介意稍微提示一下如何开始吗?
我正在尝试实现 dijkstra 的寻路算法,并且需要某种优先级队列来存储信息。
在过去,例如 fifo 或 filo PQ,我只使用了一个数组,然后使用了两个指向当前插入和当前“查找”位置的指针,然后是“删除”,并且项目将查找位置向上移动一次。
但是对于dijkstra,我需要一个按重量(或当前距离)排序的PQ,然后查看PQ顶部的那个,我将如何在C中实现它?
谢谢你的时间!
编辑:人们提到了二进制堆,你介意稍微提示一下如何开始吗?