这阵子在温习图论方面的知识,当看到Dijkstra算法时,一时手痒,就写了出来,现在与大家分享一下,同时也可以作为日后学习和工作的参考。
首先,该算法实现过程中使用了我自定义的堆方法,因为C++ STL中的*_heap方法不能满足需求。这些堆方法(*Heap)的具体实现,参见我的上一篇文章实用的Heap实现 Version 1.2.
Dijkstra算法实现如下
调用main方法如下
数据文件如下(文件:linkWeight.txt)
输出结果如下
希望大家喜欢~~~