/*
大家可以先看大神的理論知識,將dijkstra思想搞懂,然後在
來看我舉得簡單的例子
*/
輸入:
v e
e行 ,每行表示倆個節點相連的邊的長度
輸出:
節點1的單源最短路徑
input:
6 9
1 2 7
1 3 9
1 6 14
2 3 10
2 4 15
3 4 11
3 6 2
4 5 6
5 6 9
output:
0 7 9 20 20 11
大神裡面的那個圖的例子
#include
#include
using
namespace
std;
const
int maxn = 100;
const
int inf = 10000;
int w[maxn][maxn]; //存圖,相連節點之間的邊 ,無邊初始化為最大值
int vis[maxn]; //標記節點是否使用過
int dis[maxn]; //存起點到終點的最短路徑陣列
void dijkstra(int n)
}vis[k] = 1; //將節點k加入x
//更新y區域
for(int j=1; j<=n; ++j)
}
}}int main()
dijkstra(v);
for(int i=1; i<=v; ++i)
cout
<< dis[i] << " ";
}return
0;}
迪傑斯特拉最短路徑
問題描述 在帶權有向圖g中,給定乙個源點v,求從v到g中的其餘各頂點的最短路徑問題,叫做單源點的最短路徑問題。在常用的單源點最短路徑演算法中,迪傑斯特拉演算法是最為常用的一種,是一種按照路徑長度遞增的次序產生最短路徑的演算法。在本題中,讀入乙個有向圖的帶權鄰接矩陣 即陣列表示 建立有向圖並按照以上描...
最短路 (迪傑斯特拉)
a 最短路 crawling in process.crawling failed time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice hdu 2544 description 在...
最短路徑 迪傑斯特拉演算法
例如,要求下圖v0到v8的最短路徑 所以我們可以找到這樣的一條最短路徑 下面是他的鄰接矩陣 偽 如下 define maxvex 9 define infinity 65535 typedef int patharc maxvex 用於儲存最短路徑下標的陣列 typedef int shortpat...