⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 邻接矩阵求解最短路径(数组).c

📁 邻接矩阵求解最短路径(数组).rar 邻接矩阵求解最短路径(数组).rar
💻 C
字号:
main()
{int i,j,k,s[6]={999,999,999,999,999,999},d[6],num,m;
int a[6][6]={{999,10,70,999,999,999},/*邻接矩阵来表示网,'999'表示无连接*/
			{999,999,999,999,20,999},
			{999,999,999,20,999,999},
			{999,999,999,999,30,10},
			{999,999,30,999,999,999},
			{999,999,999,999,10,999}};
for(i=1;i<=5;i++){
	s[i]=a[0][i];/*s[i]存放目前最短路径*/
	d[i]=0;}
for (i=1;i<=5;i++){
	for(j=1;j<=5;j++){
		if((s[j]>a[i][j]+s[i])&&(s[i]!=999)) 
			{
				num=s[j]-a[i][j]-s[i];
				s[j]=a[i][j]+s[i];/*改变目前最短路径*/  
				d[j]=i;
				k=1;m=j;
				while(k<=5)  /*当这条最短路径改变后,改变以这条路径为基础的最短路径*/
				{if(d[k]==m) {s[k]=s[k]-num;m=k;k=1;}
				k++;}
				
			}
	}
}

for(i=1;i<=5;i++)/*输出最短路径*/
 if (s[i]==999) printf("The 0 to %d is num(V0--V%d--V%d)\n",i,d[i],i);
  else  printf("The 0 to %d is %d(V0--V%d--V%d)\n",i,s[i],d[i],i);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -