求最短路徑之 Dijkstra演算法

2021-08-26 03:19:21 字數 861 閱讀 2329

dijkstra演算法適用於求某源點到其他頂點的最短路徑問題,下面是**。

檔案"graph.h"

#include#includeusing namespace std; const int max=99999; const int max_vex_num=20; class mgraph arcs[i][j]=w; } cout<

#include"graph.h" int main() { mgraph g; g.create_mg(); int dist[20]; int path[20]; cout<>v; cout<

輸入圖的頂點數和邊數:6 8 輸入各個頂點的民稱:v1 v2 v3 v4 v5 v6 輸入每條邊對應的始點和終點以及該邊的權值:v1 v3 10 輸入每條邊對應的始點和終點以及該邊的權值:v1 v5 30 輸入每條邊對應的始點和終點以及該邊的權值:v1 v6 100 輸入每條邊對應的始點和終點以及該邊的權值:v2 v3 5 輸入每條邊對應的始點和終點以及該邊的權值:v3 v4 50 輸入每條邊對應的始點和終點以及該邊的權值:v5 v4 20 輸入每條邊對應的始點和終點以及該邊的權值:v4 v6 10 輸入每條邊對應的始點和終點以及該邊的權值:v5 v6 60 圖構造完成 輸入源點:0 _____求源點到其他頂點的最短路徑____ 從源點v1到其他各個頂點的最短路徑長度如下: v1和v2之間不存在路徑連通 v1->v3 10 v1->v4 50 v1->v5 30 v1->v6 60 從源點到v1到頂點v3的最短路徑為:v1->v3 從源點到v1到頂點v4的最短路徑為:v1->v5->v4 從源點到v1到頂點v5的最短路徑為:v1->v5 從源點到v1到頂點v6的最短路徑為:v1->v5->v4->v6 press any key to continue

按照輸入所生成的有向網如下所示:

求最短路徑(dijkstra)

因為要做一道題牽扯到最小路徑的演算法,所以就看了看締結斯特拉演算法。看了演算法導論上面的介紹不明白,只好下了乙個 自己去看。單源圖最短路徑求法 int dijkstra int from,int to int map n s u 1 for i 0 i 看了之後自己總結的一點點的經驗 締結斯特拉演算...

Dijkstra求最短路徑

把m1.txt與可執行檔案放在統一路徑下 m1.txt 距離矩陣,9行9列 的資料如下 9999 6 3 1 9999 9999 9999 9999 9999 9999 9999 9999 9999 1 9999 9999 9999 9999 9999 2 9999 2 9999 9999 9999...

Dijkstra演算法求最短路徑

參考文獻 dijkstra一般的表述通常有兩種方式,一種用永久和臨時標號方式,一種是用open,close表方式,drew為了和下面要介紹的 a 演算法和 d 演算法表述一致,這裡均採用open,close表的方式。大概過程 建立兩個表,open,close。open表儲存所有已生成而未考察的節點,...