#include
#include
"structure.c"
#define maxvertex 100
typedef
char dis;
//輸出floyd中的矩陣
void
printdis_floyd
(amgraph *g,
int a[maxvertex]
[maxvertex]
)printf
("\n");
}}void
printpathvertex_floyd
(amgraph *g, dis a[maxvertex]
[maxvertex]
)printf
("\n");
}}void
floyd
(amgraph *g)
else}}
//將中間路徑節點 集合 全部賦值為-1,指示兩點之間要麼沒有路要麼沒有中間節點
for(
int i =
0; i < g->vexsnum; i++)}
//進行floyd的主要三重迴圈
// 1、對每個節點進行遍歷,將這個點插入每兩個中,看會不會形成更小的距離
for(
int v =
0;v < g->vexsnum; v++)}
}}}// 對兩個陣列進行列印
// 最短距離值的陣列
printmaxtrix
(g);
printf
("\n");
printpathvertex_floyd
(g,path);}
//main
intmain
(int argc,
char
const
*ar**)
資料結構 Floyd演算法
演算法的思想 遍歷每個結點。然後以這個結點為中間結點來更新所有的結點。edge i,j min edge i k edge k j edge i j edge就是邊的長度 例如 image.png 首先 以 1 為中間結點,更新 1,2 1,3 1,4 1,5 1,6 2,3 2,4 等所有結點 其...
資料結構 考研 Floyd演算法
floyed 演算法與 dijkstra 演算法的思想完全一樣,遍歷整個鄰接矩陣,比較每一條邊可否加入迴圈中的兩邊之間來短接。floyed 演算法基於動態規劃演算法,可以允許有負權值,但不可以有帶負權值的邊存在。首先,初始化乙個鄰接矩陣,初始化乙個 dp 矩陣,初始化乙個頂點的前趨矩陣prev。de...
資料結構 Floyd
這個演算法比較好理解。include define maxvex 10 define infinity 655535 typedef struct graphtype int located graphtype g,char v0 void create graphtype g void floyd...