最短路徑 dijkstra

2021-08-26 03:04:58 字數 824 閱讀 1311

//偽**

dijkstra(s) 

}//遍歷完了n個頂點

}

//鄰接矩陣

#include#includeusing namespace std;

const int maxn=1000;//最大頂點數

const int inf=1000000000;//無窮大

int n,m,s,g[maxn][maxn];//n頂點數,m邊數,s起點,g鄰接矩陣

int d[maxn]; //起點到各個頂點的最小距離

bool vis[maxn]=;//標記陣列,true代表已經訪問,初值均未被訪問

void dijkstra(int s)

}}int main()

dijkstra(s);

for(int i=0;i#include#includeusing namespace std;

const int inf=100000;

const int maxv=1000;

struct node;

int n,m,s;//頂點的數量

bool vis[maxv]=;

int d[maxv];

vectoradj[maxv];//圖g adj存放從頂點u出發可以到達的所有頂點

void dijkstra(int s)

}}int main()

dijkstra(s);

for(int i=0;icout

}

Dijkstra 最短路徑

dijkstra 最短路徑 針對有向圖,不支援負權值 圖的相鄰矩陣表示方法,還要用到最小值堆 include include define unvisited 0 define visited 1 define infinite 9999 設定最大值 define n 5 定義圖的頂點數 using...

dijkstra最短路徑

hehe和xixi在乙個地方玩遊戲,xixi把n 1件禮物 hehe以前送給xixi的 分別藏在了另外n 1個地方,這些地方都能互相到達,且所有的邊都是有方向的。現在hehe要做的事就是去那些地方找回那n 1件禮物給xixi 由於每一件禮物都有特殊的意義,所以xixi要求hehe每找到一件禮物,就必...

最短路徑 Dijkstra

首先,提出兩點 一 如果把不帶權圖上的所有邊的權值均定義為1,則該不帶權圖可以歸結為帶權圖 二 如果把無向圖中的每一條邊 vi,vj 都定義為弧和弧,則該無向圖可以歸結為有向圖。因此不失一般性,我們只用看有向帶權圖怎麼求解最短路徑問題就ok。帶權圖中,從乙個結點到另個一結點存在著多條路徑,稱每一條路...