2011年软考程序员考试复习笔试知识点整理(10)

来源:软件水平考试    发布时间:2012-11-05    软件水平考试视频    评论

  #include

  #include

  #define MAXVEX 30

  #define MAXCOST 1000

  /*

  每一步扫描数组lowcost,在V-U中找出离U最近的顶点,令其为k,并打印边(k,closest[k]), 然后修改lowcost和closest,标记k已经假如U。c表示图邻接矩阵,弱不存在边(i,j),则c[i][j]的值为一个大于任何权而小于无限打的阐述,这里用MAXCOST表示

  */

  /*一直图的顶点为{1,2,...,n},c[i][j]为(i,j)的权,打印最小生成树的每条边*/

  void prim (int c[MAXVEX][MAXVEX], int n)

  {

  int i,j,k,min,lowcost[MAXVEX],closest[MAXVEX];

  for(i=2;i<=n;i++) /*从顶点1开始*/

  {

  lowcost[i]=c[1][i];

  closest[i]=1;

  }

  closest[1]=0;

  for(i=2;i<=n;i++) /*从U之外求离U中某一顶点最近的顶点*/

  {

  min=MAXCOST;

  j=1;

  k=i;

  while(j<=n)

  {

  if(lowcost[j]

  {

  min=lowcost[j];

  k=j;

  }

  j++;

  }

  printf("(%d,%d)",closest[k],k); /*打印边*/

  closest[k]=0;/* k假如到U中 */

  for(j=2;j<=n;j++)

  if(closest[j]!=0 && c[k][j]

  {

  lowcost[j]=c[k][j];

  closest[j]=k;

  }

  }

  }

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答