ch6_6.c

来自「数据结构的一些小算法」· C语言 代码 · 共 46 行

C
46
字号
#include <stdio.h>
#define M 10
#define MAX 100

void shortpath_FLOYD(int cost[][M],int path[][M],int length[][M],int n)
{  int i,j,k,wm;
   for(i=0;i<n;i++)
     for(j=0;j<n;j++)
     {  length[i][j]=cost[i][j];
        if(i==j) path[i][j]=0;
        else if(length[i][j]<MAX)
            path[i][j]=i+1;
        else  path[i][j]=0;
     }
   for(k=0;k<n;k++)
     for(i=0;i<n;i++)
       for(j=0;j<n;j++)
         if(length[i][k]+length[k][j]<length[i][j])
         {  length[i][j]=length[i][k]+length[k][j];
            path[i][j]=path[k][j];
         }
}

void main()
{
   int i,j,n=3;
   static int cost[][M]={{0,4  ,11},
			 {6,0  ,2},
			 {3,MAX,0}};
   static int path[M][M],length[M][M];
   shortpath_FLOYD(cost,path,length,n);
     for(i=0;i<n;i++)
    {  for(j=0;j<n;j++)
	 printf("%-6d",length[i][j]);
       printf("\n");
    }
    printf("\n");
    for(i=0;i<n;i++)
    {  for(j=0;j<n;j++)
	 printf("%-6d",path[i][j]);
       printf("\n");
    }
}


⌨️ 快捷键说明

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