Dantjig演算法求最短路徑的c語言實現

2021-05-24 21:53:59 字數 742 閱讀 8612

圖的頂點從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 起點到達各...