最短路的前向星實現

2021-07-14 15:11:57 字數 675 閱讀 5772

#include #include #include #include #include #include #include #include using namespace std;

const int maxn=1000;

const int maxm=maxn*maxn;

const int inf=0x3f3f3f3f;

struct edge ;

int n,m;

int pre[maxn]; //前向星

edge e[maxm];//邊集

int vis[maxn];//是否已加入確定點集

int dis[maxn];//到始點的距離

int main()

memset(vis,0,sizeof(vis));

memset(dis,inf,sizeof(dis));

dis[1]=0; //從定點1出發

for(int i=0;i}

vis[v]=1;

for(int k=pre[v];k!=-1;k=e[k].next) //鬆弛操作

}for(int i=1;i<=n;i++) //輸出到每個節點的最短距離

printf("%d\n",dis[i]);

}return 0;

}

最短路(SPFA 前向星

problem description 輸入t,n分別代表有t條通道,和n個地點。接下來t行u,v,w分別表示u地點於v地點之間通道消費,有重複邊 sample input 5 51 2 20 2 3 30 3 4 20 4 5 20 1 5 100 sample output 運用spfa的幾個要...

C 最短路 spfa 前向星

time limit 7000ms memory limit 65536k 有疑問?點這裡 給出乙個帶權無向圖,包含n個點,m條邊。求出s,e的最短路。保證最短路存在。多組輸入。對於每組資料。第一行輸入n,m 1 n n 5 10 5,1 m m 2 10 6 接下來m行,每行三個整數,u,v,w,...

鏈式前向星教學詳解最短路

鏈式前向星 圖的儲存一般有兩種 鄰接矩陣 鄰接表 鄰接表包括一種東西叫前向星 若圖是稀疏圖,邊很少,開二維陣列a很浪費 若點很多 如10000個點 a 10000 10000 又會爆.只能用前向星做.前向星的效率不是很高,優化後為鏈式前向星,直接介紹鏈式前向星。資料結構 struct edg 鏈式前...