D演算法 指定端到其他端的最短路徑演算法

2021-10-12 13:53:59 字數 1008 閱讀 8721

資料結構與演算法

d演算法-指定端到其他端的最短路徑演算法

/*

d演算法對有向圖也適用

也可適用於端點有權的情況

d演算法不適用於邊的權有正有負的情況

2020-12-17 written by hl

*/#include

using

namespace std;

#define max_vertex_num 100

//最大矩陣維度

typedef

struct mgraph

mgraph;

mgraph*

createmgraph()

return g;

}//輸出從頂點 v出發的所有最短路徑

void

dispath

(mgraph*g,

int dis,

int path,

int s,

int v)

d++; apath[d]

=v;//新增路徑上的起點

printf

("%d"

,apath[d]);

//先輸出起點

for(j=d-

1; j>=

0; j--

)printf

("\n");

}}}}

void

dijkstra

(mgraph *g,

int v)

else

} s[v]=1

; path[v]=0

;for

(i=0

; i>n; i++)}

s[u]=1

;//頂點u加入s中

for(j=

0; j>n; j++)}

}}dispath

(g,dis,path,s,v);}

intmain()

演算法筆記 問題 D 最短路徑

題目描述 有n個城市m條道路 n 1000,m 10000 每條道路有個長度,請找到從起點s到終點t的最短距離和經過的城市名。輸入輸入包含多組測試資料。每組第一行輸入四個數,分別為n,m,s,t。接下來m行,每行三個數,分別為兩個城市名和距離。輸出每組輸出佔兩行。第一行輸出起點到終點的最短距離。第二...

最短路徑的A 演算法

這裡原理就是根據乙個g 到起始點的真實路徑 h 到目標點的真估計數值 用這個來衡量路徑的好壞,這樣找乙個合適的h函式就是個問題,而且在執行時,套路是這樣的,乙個open表,乙個close表,open用來存遍歷了卻還沒有真正訪問的點,close用來存訪問過的點,每次都選open表中f函式最小的節點,拿...

SPF的最短路徑演算法

常見的路由協議比如rip igrp bgp是距離向量協議,ospf和isis是資料鏈路狀態協議。向量協議路由器只知道本身和與自身相連的介面路由資訊,向量圖只是一張方向圖,在路由傳播的過程中,容易造成環路。rip路由器採用扁平化設計規避環路,bgp則採用as path規避環路。ospf是資料鏈路狀態路...