韶 关 学 院 学 生 实 验 报 告 册 实验课程名称:数据结构与算法 实验项目名称:实验六 树及其应用 哈夫曼编/译码器 实验类型(打√ ):(基础 、综合 、设计√ ) 院 系:信息工程学院计算机系 专 业:***** 姓 名:*** 学 号:***** 指导老师:陈正铭 韶关学院教务处编制 一、实验预习报告内容 预习日期:2007 年 6 月 12 日 实验预习报告内容原则上应包括实验目的、实验所用的主要仪器药品、实验原理与公式、 实验预习疑问等项目
【实验目的】熟练掌握非线性数据结构二叉树树的操作,熟悉树的各种存储结构特性,以及如何应用树解决具体问题
【需要分析】利用哈夫曼编码进行通信可以大大提高信道利用率,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码
试为这样的信息收发写一个哈夫曼编/译码系统,要求具备以下功能:初始化、编码、译码、印代码文件、印哈夫曼树
一个完整的哈夫曼码的编译码系统系统应具有以下功能: (1) I: 初始化(Initialization)
从终端读入字符集大小 n,几个字符和 n 个权值,建立哈夫曼树,并将它存于文件 hfmtree 中
(2) C: 编码(Coding)
利用已建好的哈夫曼树(如不在内存,则从文件 hfmtree 中读入),对文件 tobetrans 中的正文进行编码,然后将结果存入文件 codefile 中
(3) D: 译码(Decoding)
利用已建好的哈夫曼树将文件 codefile 中的代码进行译码,结果存入文件 textfile 中
(4) P: 打印代码文件(Print)
将文件 codefile 以紧凑格式显示在终端上,每行 50 个代码
同时将此字符形式的编码文件写入文件 codeprint 中
(5) T: 打印哈夫曼树(Tree printing)