实验目的:
1、熟悉二叉树的顺序存储结构;
2、熟悉二叉树的顺序存储结构和具体实现;
3、熟悉哈夫曼编码和译码,及其在顺序存储结构下的实现
实验要求:
1、根据输入构造一棵哈夫曼树,要求该哈夫曼树的左子树小于等于右子树;
2、根据构造的哈夫曼树给出对应的编码;左子树的编码为0,右子树的编码为1;
3、输出各个字符对应的编码与平均编码长度;
4、根据输入的编码,结合构造的哈夫曼树给出对应的译码
5、对带有不同权值的字符进行编码;使用自己实现的编码表对输入的‘0’‘1’代码进行译码
数据输入输出要求:
输入示例:
5
A 8
B 20
C 30
D 15
E 27
0101101110#
(说明:第一个数据5表示共有5个字符要编码,后面的“A 8”表示A的权为8,字符个数不超过20个;数据0101101110#是要解码的数据,最后以#结束)
输出示例:
编码为:A 010
B 00
C 11
D 011
E 10
平均编码长度为: