CH6_3.C
上传用户:lgb298
上传日期:2013-03-22
资源大小:1025k
文件大小:1k
源码类别:

软件工程

开发平台:

C/C++

  1. #include <stdio.h>
  2. #define M 10
  3. #define MAX 100
  4. void minispantree_PRIM(int ad[][M],int n)
  5. {  int i,j,k,p,q,wm;
  6.    q=p=n-1;
  7.    ad[q][q]=1;
  8.    for(k=0;k<(n-1);k++)
  9.    {  wm=MAX;
  10.       for(i=0;i<n;i++)
  11.  if(ad[i][i]==1)
  12.     for(j=0;j<n;j++)
  13.        if((ad[j][j]==0)&&(ad[i][j]<wm))
  14.        {   wm=ad[i][j];
  15.    p=i;
  16.    q=j;
  17.        }
  18.       ad[q][q]=1;
  19.       printf("%d %d %dn",p+1,q+1,ad[p][q]);
  20.       if(p>q)  ad[p][q]=-ad[p][q];
  21.       else     ad[q][p]=-ad[q][p];
  22.    }
  23. }
  24. void main()
  25. {   int n=6,i,j;
  26.     static int ad[][M]={{0  ,6  ,1,5  ,MAX,MAX},
  27. {6  ,0  ,5,MAX,3  ,MAX},
  28. {1  ,5  ,0,5  ,6  ,4},
  29. {5  ,MAX,5,0  ,MAX,2},
  30. {MAX,3  ,6,MAX,0  ,6},
  31. {MAX,MAX,4,2  ,6  ,0}};
  32.     minispantree_PRIM(ad,n);
  33.     for(i=0;i<n;i++)
  34.     {  for(j=0;j<n;j++)
  35.  printf("%-6d",ad[i][j]);
  36.        printf("n");
  37.     }
  38. }