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...