数据结构课设哈夫曼编译码器学 号:姓 名:提交日期:成 绩:一、实验名称哈夫曼编/译码器得实现二、实验要求【问题描述】利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但就是,这要求在发送端通过一个编码系统对待传来数据预先编码,在接收端将传来得数据进行译码(复原)。对于双工信道(即可以双向传输信息得信道),每端都需要一个完整得编/译码系统。试为这样得信息收发站写一个哈夫曼码得编/译码系统。【基本要求】一个完整得系统应具有以下功能:(1)I:初始化(In it ializati o n)。从终端读入字符集大小 n , 以及 n 个字符与n个权值,建立哈夫曼树,并将它存于文件 h fm Tree 中。(2)E:编码(Enc o ding).利用已建好得哈夫曼树(如不在内存,则从文件 hfmTree 中读人),对文件 T o BeTr a n 中得正文进行编码,然后将结果存入文件 CodeFi l e 中。(3)D: 译码(De co ding)。利用已建好得哈夫曼树将文件 C odeFile 中得代码进行译码,结果存入文件 TextFile 中。(4)P:打印代码文件(Prin t)。将文件C o d eFile 以紧凑格式显示在终端上,每行 50 个代码.同时将此字符形式得编码文件写入文件 C o de P ri n 中。(5)T:打印哈夫曼树(Tree prin t i ng).将已在内存中得哈夫曼树以直观得方式(树或凹入表形式)显示在终端上,同时将此字符形式得哈夫曼树写入文件 TreePrint 中。【测试数据】(1)利用教科书例 6—2 中得数据调试程序.(2)用下表给出得字符集与频度得实际统计数据建立哈夫曼树 , 并实现以下报文得编码与译码:"T HI S PR OGRA M I S M Y F A VO R ITE"。字符ABCDEFGHIJKLM频度153220字符NOPQRSTUVWXYZ频度57638181161三、需求分析Huffman 编码就是一种可变长编码方式,就是由美国数学家 Dav i d Huf f man 创立得,就是二叉树得一种特别转化形式。编码得原理就是:将使用次数多得代码转换成长度较短得代码,而使用次数少得可以使用较长得编码,并且保持编码得唯一可解性.Hu f fma n算法得最根本得原则就是:累计得(字符得统计数字*字符得编码长度)为最小,也就就是权值(字符得统计数字*字符得编码长度)得与最小。3、1 设计简介本设计就是通过对给定字符及其使用频度构造哈夫曼树再根据哈夫曼树进行哈夫曼编码,在此之前,首先要理解哈夫曼树、哈...