实验3 树型结构
一、实验目的
1. 熟练掌握二叉树的概念、特点及二叉链表实现 2. 掌握哈夫曼树的生成算法
3. 掌握哈夫曼编码的生成方法以及对文本編码、译码的方法
二、实验内容
1. 利用哈夫曼编码进行通信可以大大提高通信利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码,此试验即设计这样的一个简单的编/译码系统。系统应该具备如下的几个功能: 1) 求出各个叶子节点的权重值: 输入一个字符串,统计其中各个字母的个数和总的字母个数。
2) 构造哈夫曼树: 统计出的字母种类为叶子结点个数,每个字母个数为相应的权值,建立哈夫曼树。
3) 打印哈夫曼树: 按照一定形式打印出哈夫曼树。 4) 编码: 利用已经建立好的哈夫曼树进行编码。
5) 译码: 根据编码规则对输入的代码进行翻译并将译码。
实验源程序中,已经建立了一个HuffTree类,并实现了一些函数,现在需要你编写3_1.cpp中的几个函数,完成程序的功能。 三、实验报告要求
1. 根据程序要求对运行结果进行分析。如果程序未能调试通过,分析其原因。 2. 根据实验步骤,说明未能编译通过的原因,并正确进行修改。 3. 总结实验中遇到的问题,并谈谈本次实验的收获与经验。 4. 实验报告内容及评分标准参见实验1。 5. 实验报告必须三周内提交到课程中心。