当前位置:文档之家› 哈夫曼编码实验报告

哈夫曼编码实验报告

哈夫曼编码实验报告
哈夫曼编码实验报告

哈夫曼编码实验报告

①问题描述:给定n个字符的权值数组w,根据哈夫曼编码与译码规则,实现一个哈夫曼编/译码系统(利用实验指导书上的27个字符的数据进行实验)。

②利用顺序表存储Huffman树,编码结果的存储方式采用书上的结构。

③Huffman树的构造约定如下:

根的权值较小的子树作为左子树,当权值相等时,则先生成的子树是左子树;

按照结点的生成次序选择权值较小的两棵子树构造Huffman树;从叶子结点到根结点逆向求出每个字符的Huffman编码,不采用递归方法;

从根结点开始实现译码,要求被译码的字符数大于20个字符。

④采用文件方式存储n个权值和待翻译的二进制代码,其余数据均不采用文件存储。

序号字符权值双亲结点左孩子右孩子

1 □186 0 0 0

2 A 64 0 0 0

3 B 13 0 0 0

4 C 22 0 0 0

5 D 32 0 0 0

6 E 103 0 0 0

7 F 21 0 0 0

8 G 15 0 0 0

9 H 47 0 0 0

10 I 57 0 0 0

11 J 1 0 0 0

12 K 5 0 0 0

13 L 32 0 0 0

14 M 20 0 0 0

15 N 57 0 0 0

16 O 63 0 0 0

17 P 15 0 0 0

18 Q 1 0 0 0

19 R 48 0 0 0

20 S 51 0 0 0

21 T 80 0 0 0

22 U 23 0 0 0

23 V 8 0 0 0

24 W 18 0 0 0

25 X 1 0 0 0

26 Y 16 0 0 0

27 Z 1 0 0 0

实验过程与结果

完整代码:(实验环境codeblock)

关闭程序,重新开始,此时选择读取文件方式构建哈夫曼树,文件hafuman.txt中存储着各叶子节点权值,对应字符和待编译的二进制编码,读取文件截图如下,其他操作6.7.8及结果同上。

相关主题
文本预览
相关文档 最新文档