C语言如何实现5个城市之间求最短路径。 从A出发,最终回到A。 求最短路径问题。 可用穷举来完成。 10

求完成的代码。自己有大致的思想,但是写不出来。... 求完成的代码。
自己有大致的思想,但是写不出来。
展开
 我来答
伪笑掩饰忧伤
2017-04-03 · TA获得超过285个赞
知道小有建树答主
回答量:202
采纳率:83%
帮助的人:68万
展开全部
//这个算法名字叫迪杰斯特拉算法
#include<stdio.h>
#include<stdlib.h>
#define max 11000000000
inta[1000][1000];
intd[1000];//d表示某特定边距离
intp[1000];//p表示永久边距离
inti,j,k;
intm;//m代表边数
intn;//n代表点数
intmain()
{
scanf("%d%d",&n,&m);
intmin1;
intx,y,z;
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&z);
a[x][y]=z;
a[y][x]=z;
}
for(i=1;i<=n;i++)
d[i]=max1;
d[1]=0;
for(i=1;i<=n;i++)
{
min1=max1;
for(j=1;j<=n;j++)
if(!p[j]&&d[j]<min1)
{
min1=d[j];
k=j;
}
p[k]=j;
for(j=1;j<=n;j++)
if(a[k][j]!=0&&!p[j]&&d[j]>d[k]+a[k][j])
d[j]=d[k]+a[k][j];
}
for(i=1;i<n;i++)
printf("%d->",p[i]);
printf("%d\n",p[n]);
return0;
}
追问
为什么执行不了呢?
ZaolyloaZ
2017-04-03 · TA获得超过1776个赞
知道小有建树答主
回答量:567
采纳率:80%
帮助的人:96.2万
展开全部
这五个城市分别在哪里?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式