扫码加入训练营

牢记核心词

学习得礼盒

计算机考研:数据结构常用算法精析(6)

2013-12-11 14:35:35来源:新东方在线编辑

  void HuffmTree (huffm HT[m+1] ) //构造H树的算法//

  {

  int i, j, p1, p2; int w, s1, s2;

  for (i=1,i<=m,i++) //初始化//

  {

  HT[i]. wi=0;

  HT[i].parent=0;

  HT[i].Lchild=HT[i].Rchild=0;

  }

  for (i=1; i<=n; i++)

  scanf(“%d”,& HT[i]. wi ); //读入权值//

  for (i=n+1; i<=m; i++) //进行n-1次循环,产生n-1个新结点,构造H树//

  {

  p1=p2=0; //p1、p2 为所选权值最小的根结点序号//

  s1=s2=max; //设max为机器能表示的最大整数//

  for(j=1;j<=i-1;j++) //从HT[1]~HT[i-1]中选两个权值最小的根结点//

  if (HT[j].parent==0)

  if (HT[j]. wi

  { s2=s1; p2=p1; //以j结点为第一个权值最小的根结点//

  s1=HT[j].wi; p1=j;

  }

  else if (HT[j].wi

  {

  s2=HT[j].wi ;

  p2=j; //以j为第二个权值最小的根//

  }

  HT[p1].parent=HT[p2].parent=i; //构造新树//

  HT[i].Lchild=p1; HT[i].Rchild=p2;

  HT[i].wi =HT[p1].wi +HT[p2].wi; //权值相加送新结点//

  }

  }

考研公开课小程序

本文关键字: 计算机 考研 数据结构

考研英语核心词汇营

背词+听课+练习+督学,学习得礼盒

更多资料
更多>>
更多内容

关注新东方在线考研服务号

获得21考研真题及答案解析

1. 打开手机微信【扫一扫】,识别上方二维码;
2.点击【关注公众号】,获取资料大礼包。

近10年考研真题及答案免费下载
更多>>
更多公开课>>
更多>>
更多资料