資料結構與演算法
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是資料鏈路狀態路...