迪傑斯特拉方法實現最短路徑

2022-09-09 18:48:13 字數 1130 閱讀 4771

用迪傑斯特拉演算法實現有向網的最短路徑

第一行輸入有向網的頂點和邊數,第二行輸入各頂點值,用空格間隔,第三行開始輸入各條邊的 兩個點的及邊上的權值,用空格間隔。最後一行輸入要求路徑的兩個頂點。

輸出最短路徑經過的各頂點,中間用-->連線。

在這裡給出一組輸入。例如:

6 8

0 1 2 3 4 5

0 2 10

0 4 30

0 5 100

1 2 5

2 3 50

3 5 10

4 3 20

4 5 60

0 3

結尾無空行

在這裡給出相應的輸出。例如:

0-->4-->3

結尾無空行

#include#include

#include

using

namespace

std;

const

int n=1010

;struct

edge;

struct

nodea[

1010

];int

n;int find(int

u) }

return -1;}

void add(int u,int v,int

w)int

dis[n],pre[n];

bool

st[n];

void dijkstra(int

u) }

if(dis[k]==0x3f3f3f3f

) st[k]=1

;

for(edge* j=a[k].next;j!=null;j=j->next)}}

}void showroad(int

v)else

}int

main()

for(int i=0;i)

intu,v;

cin>>u>>v;

dijkstra(u);

showroad(v);

return0;

}

迪傑斯特拉最短路徑

問題描述 在帶權有向圖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...