圖的頂點從0到
7編號,邊的權值也已經標記,目標是運用
dantjig
演算法求出圖中所有點到點
0的最短距離。圖如下:
程式執行結果正常,截圖如下:
以下為完整的原始碼及注釋:
#include
main()
,//g[i][i]=1
表示點i
屬於集合a
,//g[i][i]=0
表示點i
不屬於集合a
,//初始化時將點
0放入集合
a,其餘點不在集合a中
, ,
, ,
};intt[8]=;//
用於存放任意一點到初始點
0的最短距離
printf("graph initialization:/n");
for(i=0;i<8;i++)
printf("/n"); }
printf("/nresults:/n");
while(1) }
} }}
g[r][r] = 1;//
找到集合
a以外的點並將其加入集合a
t[r] = min;//
儲存新加入集合
a的點到點
0的最短距離
printf("the shortest distence from 0 to %d is:%d/n", r, t[r]); }
}
最短路 求最長最短路,求最短路的路徑
hdu 1595 find the longest of the shortest include include include include include include include include include include include include include defi...
Dijkstra演算法求最短路徑
參考文獻 dijkstra一般的表述通常有兩種方式,一種用永久和臨時標號方式,一種是用open,close表方式,drew為了和下面要介紹的 a 演算法和 d 演算法表述一致,這裡均採用open,close表的方式。大概過程 建立兩個表,open,close。open表儲存所有已生成而未考察的節點,...
Dijkstra演算法求最短路徑
dijkstra演算法用來求最短距離 已經實現了 那麼最短路徑 如何求解並列印出來呢?此處的方法是記錄路徑中結點的前驅 if v未被訪問 以u為中介點可以使起點s到頂點v的最短距離d v 更優 程式具體實現,鄰接矩陣版 n為頂點數,maxv為最大頂點數 int n,g maxv maxv 起點到達各...