[C] 用Prim算法建立最小生成树(邻接矩阵) →→→→→进入此内容的聊天室

来自 , 2020-06-25, 写在 C, 查看 106 次.
URL http://www.code666.cn/view/19431027
  1. void Prim(int gm[ ][MAXNODE]int n,int closevertex[ ]
  2. {/*用Prim 方法建立有n 个顶点的邻接矩阵存储结构的网图gm 的最小生成树*/
  3.     /*从序号为0 的顶点出发;建立的最小生成树存于数组closevertex 中*/
  4.     int lowcost[100],mincost;
  5.     int i,j,k;
  6.     for ( i=1; i<n; i++ ) /*初始化*/
  7. {
  8. lowcost[i]=gm[0][i];
  9.         closevertex[i]=0;
  10. }
  11. lowcost[0]=0; /*从序号为0 的顶点出发生成最小生成树*/
  12. closevertex[0]=0;
  13. for ( i=1; i<n; i++ ) /*寻找当前最小权值的边的顶点*/
  14. {
  15. mincost=MAXCOST; /*MAXCOST 为一个极大的常量值*/
  16. j=1;
  17. k=1;
  18. while ( j<n )
  19.         {
  20.                 if ( lowcost[j]<mincost && lowcost[j]!=0 )
  21.                 {
  22.                         mincost=lowcost[j];
  23.                         k=j;
  24.                 }
  25.                 j++;
  26.         }
  27.         printf ( “顶点的序号=%d 边的权值=%d\n”,k,mincost );
  28.         lowcost[k]=0;
  29.         for ( j=1; j<n; j++ ) /*修改其它顶点的边的权值和最小生成树顶点序号*/
  30.                 if ( gm[k][j]<lowcost[j] )
  31.                 {
  32.                         lowcost[j]=gm[k][j];
  33.                         closevertex[j]=k;
  34.                 }
  35. }
  36. }

回复 "用Prim算法建立最小生成树(邻接矩阵)"

这儿你可以回复上面这条便签

captcha