北京邮电大学信息与通信工程学院
2008 级数据结构实验报告
实验名称: 实验三——实现哈夫曼树
学生姓名: ***
班 级: **********
班内序号: **
学 号: ********
日 期: 2009 年 11 月 14 日
1.实验要求
利用二叉树结构实现赫夫曼编/解码器。
基本要求:
1、 初始化(Init):能够对输入的任意长度的字符串 s 进行统计,统计每个字符的
频度,并建立赫夫曼树
2、 建立编码表(CreateTable):利用已经建好的赫夫曼树进行编码,并将每个字符
的编码输出。
3、 编码(Encoding):根据编码表对输入的字符串进行编码,并将编码后的字符串
输出。
4、 译码(Decoding):利用已经建好的赫夫曼树对编码后的字符串进行译码,并输
出译码结果。
5、 打印(Print):以直观的方式打印赫夫曼树(选作)
6、 计算输入的字符串编码前和编码后的长度,并进行分析,讨论赫夫曼编码的压
缩效果。
测试数据:
I love data Structure, I love Computer。I will try my best to study data
Structure.
提示:
1、用户界面可以设计为“菜单”方式:能够进行交互。
2、根据输入的字符串中每个字符出现的次数统计频度,对没有出现的
字符一律不用编码。
2. 程序分析
2.1 存储结构
在哈夫曼树编码这个程序中,所有数据用的存储结构都是顺序存储结构,其中包括顺序
表和树(三叉树)。
树的存储结构如下:(输入的字符串为 assddddffffffffgggggggggggggggg)
第 1 页