#include
#define max 999
#define maxverts 10
typedef struct
graph;
void chushi(graph &g);
void dij(graph&,int key,int ,int );
int main()
for(i=1;i<=g.numverts;i++)
dij(g,1,pre,dis);
for(j=1;j<=g.numverts;j++)
printf("%d ",dis[j]);
putchar('\n');
for(j=1;j<=g.numverts;j++)
printf("%d ",pre[j]);
return 0;
}void chushi(graph &g)
void dij(graph &g,int key,int pre,int dis)
dis[key]=0;
pre[key]=0;
g.adj[key][key]=1;
for(i=1;i
}if(v==-1)
else }}
}}/*10
2 1 9
1 6 40
1 3 2
1 4 10
3 2 1
3 4 6
4 6 8
3 5 20
4 5 5
7 4 17
*/
單源最短路徑
最優子結構 最短路徑的子路徑也是最短路徑,動態規劃和貪心演算法的乙個重要指標。環路 一條最短路徑不可能包含環路 1 環路權重為負,如果有一條環路權重為負,則不存在最短路徑 2 環路權重為零,如果包含該環路,則將該環路去掉即可 3 環路權重為正,去掉改環路可以得到更短的路徑,因此不可能是最短路徑 最短...
單源最短路徑
單源最短路徑問題,即在圖中求出給定頂點到其他任一頂點的最短路徑。1.最短路徑的最優子結構性質 該性質描述為 如果p i,j 是從頂點i到j的最短路徑,k和s是這條路徑上的乙個中間頂點,那麼p k,s 必定是從k到s的最短路徑。證明 假設p i,j 是從頂點i到j的最短路徑,則有p i,j p i,k...
單源最短路徑
在最短路徑問題中,給定乙個帶權重的有向圖g v,e 和權重函式w e r,該權重函式將每條邊對映到實數值的權重上。圖中一條路徑p v0,v1,vk 的權重w p 是構成該路徑的所有邊的權重之和。定義從結點u到結點v的最短路徑權重 u,v 從結點u到結點v的最短路徑則定義為任何一條權重w p u,v ...