最短路 迪傑斯特拉 cpp

2021-06-22 13:43:51 字數 1120 閱讀 8100

#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...