1个回答
2015-06-26
展开全部
百度一下这个算法就行了~
ps:别看百度百科,太非了(雾
看看博客的讲解,不难的
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)
*/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询