資料結構 Floyd演算法 順序儲存

2021-09-29 23:04:18 字數 953 閱讀 8703

#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...