鄰接矩陣儲存 多源最短路演算法 Floyd演算法

2021-09-27 02:52:48 字數 811 閱讀 4533

floyd演算法介紹如圖:

列印路徑,遞迴解決;

#include

#include

#include

#include

#include

#include

#include

#define max 1010

#define inf 65535

using namespace std;

int d[max]

[max]

;//記錄起點到當前點的最短路徑長度

int path[max]

[max]

;//記錄當前點的路徑路線

typedef

struct enode

*edge;

typedef

struct gnode

*graph;

/* 鄰接矩陣儲存 - 多源最短路演算法 */

bool floyd

(graph g)

}for

(int k =

0; k < g->vertex_num; k++)}

}return true;

}//遞迴列印

void

print

(int i,

int j)

intmain()

鄰接矩陣 最短路徑演算法

floyd演算法 思路 遍歷計算 i 點 經過 k 點 到 j 點 的最小路徑值 動態規劃思路 缺點 時間複雜度高,不能解決負邊情況 輸入樣例 4 81 2 2 1 3 6 1 4 4 2 3 3 3 1 7 3 4 1 4 1 5 4 3 12 輸出樣例 1 2 2 1 3 5 1 4 4 2 1...

最短路徑 鄰接矩陣

思路 先記錄1到所有點的距離 沒有連線記為無窮大 為到達該點的最短路徑長,然後從1開始利用貪心思想依次找出到下乙個連線點的最短距離,然後再找以該點為基準的下乙個距離最近的點,判斷從1先到乙個點再到該點的距離與從1直接到該點距離的大小,若小,則更新dis距離長,否則不更新 若不理解,建議看看簡單易懂 ...

Dijkstra最短路徑演算法鄰接矩陣版

模板參考kuangbin 資料結構方面 includeusing namespace std const int maxn 1010 const int inf 0x3f3f3f3f bool vis maxn int pre maxn 記錄beg到i路徑上的父結點 pre beg 1 int co...