我看到的一些论文和幻灯片提到了Dial对Dijkstra单源最短路径算法的实现。它们都说存储桶是作为双向链表存储的。(例如http://www.cs.ucsb.edu/~suri/cs231/ShortestPaths.pdf, http://www.acsu.buffalo.edu/~nagi/courses/684/4.shortestpath.pdf)。然而,所需的操作仅仅是这样的(就我所见):
那么,我错过了为什么需要双向链表的原因吗?
- 检查桶是否为空
- 将节点添加到桶中(顺序无所谓)
- 在删除经过的节点时遍历桶。
那么,我错过了为什么需要双向链表的原因吗?