怎样用C++语言编写Dijkstra算法求出下面无向网络图中各节点间的最短路径?

或者是1节点到其它节点的最短路径。... 或者是1节点到其它节点的最短路径。 展开
 我来答
匿名用户
2015-06-26
展开全部
百度一下这个算法就行了~
ps:别看百度百科,太非了(雾
看看博客的讲解,不难的
追问
主要是我C++基础不好,那些程序我都看不懂,现在急要这程序,没办法了。
追答
给你个我写的模板行吗
//无向图,输出从1到的k最短路
#include
#include
int a[1005][1005]={0},b[1005]={0,1};
int main()
{
int v,e,i,j,c,d,num,min=0;
scanf("%d%d",&v,&e);
for(i=1;ia[1][j]) min=j;
b[min]=1;
for(j=1;j<=v;j++)
if(b[j]==0&&a[1][min]+a[min][j]<a[1][j]) a[1][j]=a[1][min]+a[min][j];
}
for(i=1;i<=v;i++)
printf("%d ",a[1][i]);
system("pause");
return 0;
}
/*
附测试数据
6 15
1 2 2
3 1 3
1 4 1
1 5 12
1 6 15
3 2 2
4 2 5
5 2 3
2 6 12
3 4 3
5 3 6
6 3 5
5 4 7
4 6 9
5 6 2

(ans:7)
*/
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式