扫码加入训练营

牢记核心词

学习得礼盒

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

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

  Huffman译码

  译码是编码的逆运算。设电文(二进制码)已存入字符型文件fch中,译码过程:根据编码时建造的H树和相应的Huffman编码,从H树的根(序号为m)出发,逐个取电文中的二进制码,若当前二进制码=“0”,则走左子,否则走右子,一旦到达H树的叶结点,取相应叶结点中字符code[i].ch。重复上述译码过程,直到电文结束。算法如下:

  void Transcode(HuffmTree HT[m+1],ctype code[n+1])

  { int i, chat c; FILE *fp;

  if ((fp=fopen(“fch”,“r”))==NULL) Error(fch);

  //打开文件fch,只读,文件指针Þfp,打不开时出错处理//

  i=m; //取H树根结点序号//

  while ((c=fgetc(fp))!=EOF) //读入一个二进制码//

  {

  if(c= =‘0’)

  i=HT[i].Lchild; //向左走//

  else

  i=HT[i].Rchild; //向右走//

  if(HT[i].Lchild= =0) //HT[i]为叶子//

  { putchar (code[i].ch); //输出译出的字符//

  i=m;

  }

  }

  fclose(fp); //关闭文件fch//

  if (HT[i].Lchild!=0) Error(HT); //电文结束i未达到叶结点,则电文有误//

  }

  第6章节有关数据结构算法,上文中为大家作了分析,希望考生对于这些算法能够熟记于心,方便考试的应用和日后的实际操作,预祝大家都能够取得好成绩,加油!



考研公开课小程序

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

声明:如本网转载稿涉及版权等问题,请作者致信lulei@xdfzx.com,我们将及时处理。

限时免费
资料推荐
更多>>
更多内容

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

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

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

考研资料大礼包
近10年考研真题及答案免费下载
更多>>
更多公开课>>
更多>>
更多资料
获取验证码
收不到短信?点此接收语音验证码
电话拨打中...请留意来自125909888237的来电
60秒后可重新获取
《新东方在线注册条款》  、  《隐私权保护政策》  及  《儿童隐私保护政策》
账号密码登录 找回密码
国际手机登录
《新东方在线注册条款》  、  《隐私权保护政策》  及  《儿童隐私保护政策》
手机快速登录 找回密码
获取验证码
收不到短信?点此接收语音验证码
电话拨打中...请留意来自125909888237的来电
60秒后可重新获取
《新东方在线注册条款》  、  《隐私权保护政策》  及  《儿童隐私保护政策》
账号密码登录 找回密码
国际手机登录
《新东方在线注册条款》  、  《隐私权保护政策》  及  《儿童隐私保护政策》
手机快速登录 找回密码
获取验证码
收不到短信?点此接收语音验证码
电话拨打中...请留意来自125909888237的来电
60秒后可重新获取
《新东方在线注册条款》  、  《隐私权保护政策》  及  《儿童隐私保护政策》
账号密码登录 找回密码
国际手机登录
《新东方在线注册条款》  、  《隐私权保护政策》  及  《儿童隐私保护政策》
手机快速登录 找回密码