新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
數(shù)據(jù)結(jié)構(gòu):圖-最短路徑-Dijkstra算法-創(chuàng)新互聯(lián)
#define MAXSIZE 100
#define MAXLEN 10
#include#include#define MAXCOST 1000
#define MAX 100
typedef struct vertex
{
int num;
}DataType;
typedef struct
{
DataType vexs[MAXLEN+1];
int edges[MAXLEN+1][MAXLEN+1];
int n,e;
}MGraph;
void createcost( MGraph *g,int n,int e )
{
int i,j,k,v1,v2;
int weight;
g->n=n;
g->e=e;
for(i=1;i<=g->n;i++)
{
g->vexs[i].num=i;
}
for(i=1;i<=g->n;i++)
for(j=1;j<=g->n;j++)
{
g->edges[i][j]=MAXCOST;
}
for(k=1;k<=g->e;k++)
{
scanf("%d,%d,%d",&v1,&v2,&weight);
g->edges[v1][v2]=weight;
}
}
void Dijkstra(MGraph g,int v)
{
int dist[MAXLEN+1];
int path[MAXLEN+1];
int s[MAXLEN+1];
int min,i,j,w,k;
for(i=1;i<=g.n;i++)
{
dist[i]=g.edges[v][i];
if(i==v) s[i]=1;
else s[i]=0;
path[i]=-1;
if(dist[i]%d無(wú)最短路徑!\n",v,i);
else
{
printf("%d--->%d: length=%d\n",v,i,dist[i]);
printf("path: ");
j=i;
while(path[j]!=v)
{
printf("%d-",path[j]);
j=path[j];
}
printf("%d\n",path[j]);
}
}
}
int main()
{
MGraph x;
int peak;
int side;
printf("請(qǐng)輸入頂點(diǎn)數(shù)和邊數(shù):");
scanf("%d%d",&peak,&side);
printf("請(qǐng)輸入鄰接矩陣:(測(cè)試數(shù)據(jù))\n");
createcost(&x,peak,side);
Dijkstra(x,1);
return 0;
}
測(cè)試數(shù)據(jù):
1,2,40
1,3,10
1,5,45
2,5,10
2,3,15
3,1,20
3,4,15
4,2,20
4,5,35
6,4,3
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前文章:數(shù)據(jù)結(jié)構(gòu):圖-最短路徑-Dijkstra算法-創(chuàng)新互聯(lián)
文章位置:http://fisionsoft.com.cn/article/pchgh.html