Dijkstra学习随笔

152 阅读1分钟

基本思想: 从起点出发,依次贪心地找离起点最近的节点,然后更新该节点的邻居节点离起点的路径距离。 1.用一个哈希表Dmap来记录节点以及其邻居、节点与该邻居的路径大小(从侧面印证了网络知识中网络层的链路状态算法是需要统计整个网络的拓扑特征的,是集中式的路由算法;引伸一下,网络知识还有距离向量算法,他是一种迭代的、分布式的算法,每个路由器单独计算)。

2.用一个数组或者哈希表来记录每个节点到起点之间的距离,记为dist

3.再用一个优先队列来记录当前需要访问的邻居节点,记为Q。

4.每次从优先队列中取出一个邻居节点,该邻居节点在所有其他未访问节点中,离起点最接近,然后更新其邻居节点的dist。

细节点:需要用一个访问哈希表来记录哪个节点已被访问过,当节点被放入优先队列时,该节点在访问哈希表中的值置为true。

实例说明:

image.png