最短路徑之dijkstra演算法的C語言實現

2022-05-29 01:24:14 字數 567 閱讀 2087

dijkstra演算法解決的是單源最短路徑問題:對於給定的有向網路g=(v,e)及單個源點v,求從v到g的其餘各頂點的最短路徑。

本文以下面的有向網路(用鄰接矩陣儲存)為例,並假設源點為1。

源程式如下:

#include

#define maxsize 1000  //表示兩點間不可達,距離為無窮遠

#define n 7  //結點的數目

void dijkstra(int c[n],int v);//求原點v到其餘頂點的最短路徑及其長度

void main(),,

,,,,

},v=1,i,j;

printf("【列印有向圖的鄰接矩陣】\n");

for(i=0;imax,保證距離值為max的藍點能擴充到s中

for(j=0;jd[k]+c[k][j]))//調整各藍點的距離值

}}  //所有頂點均已擴充到s中

for(i=0;i

**自 @月之幽境

最短路徑 之Dijkstra演算法

dijkstra演算法dijkstra 鄰接矩陣 int n,e maxv maxv int dis maxv pre maxv pre用來標註當前結點的前乙個結點 bool vis maxv void dijkstra int s if u 1 return visit u true for in...

最短路徑 之Dijkstra演算法

dijkstra演算法 dijkstra 鄰接矩陣 int n,e maxv maxv int dis maxv pre maxv pre用來標註當前結點的前乙個結點 bool vis maxv void dijkstra int s if u 1 return visit u true for i...

最短路徑之Dijkstra演算法

using system namespace dijkstra演算法 路徑圖 static int places int math.sqrt map.length 獲取地點數 static int shortest new int places 存放從start到其他節點的最短路徑 static b...