#include#include#define initity 999//最大值
#define vertex 20//最多頂點個數
#define false 0
#define ture 1
#define size 30
#define overflow -1
typedef struct arccellarccell,adjmatrix[vertex][vertex];
typedef structmgraph;
typedef structstack;
int p[20][20];
void initstack(stack *s)//初始化棧
void destoystock(stack *s)//銷毀棧
void pushstack(stack *s,char a)//元素壓棧
void printfstack(stack *s)//輸出棧
int located(mgraph *g,char v1)//尋找頂點v1的位置
void createudn(mgraph *g)
for(i=1;i<=g->vexnum;i++)
for(j=1;j<=g->vexnum;j++)
g->arcs[i][j].adj=999;//鄰接矩陣初始化
printf("請輸入圖的弧數:");
scanf("%d",&g->arcnum);getchar();
for(k=1;k<=g->arcnum;k++)
}void shortestpath_dij(mgraph *g,int u,int *d)//求最短路徑,迪傑斯特拉演算法
d[u]=0,final[u]=false;//初始化,u屬於s
for(i=1;i<=g->vexnum;i++)
}}int main()
pushstack(&s,g.vexs[u]);//將起始節點壓入棧中
printfstack(&s);
printf(" 權值:%d ",d[j]);printf("\n");
destoystock(&s);}}}
return 0;
}
最短路 (迪傑斯特拉)
a 最短路 crawling in process.crawling failed time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice hdu 2544 description 在...
迪傑斯特拉最短路徑
問題描述 在帶權有向圖g中,給定乙個源點v,求從v到g中的其餘各頂點的最短路徑問題,叫做單源點的最短路徑問題。在常用的單源點最短路徑演算法中,迪傑斯特拉演算法是最為常用的一種,是一種按照路徑長度遞增的次序產生最短路徑的演算法。在本題中,讀入乙個有向圖的帶權鄰接矩陣 即陣列表示 建立有向圖並按照以上描...
最短路徑 迪傑斯特拉演算法
例如,要求下圖v0到v8的最短路徑 所以我們可以找到這樣的一條最短路徑 下面是他的鄰接矩陣 偽 如下 define maxvex 9 define infinity 65535 typedef int patharc maxvex 用於儲存最短路徑下標的陣列 typedef int shortpat...