简答题
👁️ 浏览量:

试题题干

设某通信系统中一个待传输的文本有6个不同字符,它们的出现频率分别是0.5,0.8,1.4, 2.2,2.3,2.8,试设计哈夫曼编码。

参考答案

试题解析

由题意,共有n=6个不同的字符,字符的频率序列为p= {0.5, 0.8, 1.4, 2.2, 2.3, 2.8},以这些频率作为权值,构造一棵哈夫曼树过程是:

(1)由给定的值{0.5, 0.8, 1.4, 2.2, 2.3, 2.8}构造森林F= {0.5, 0.8, 1.4, 2.2, 2.3, 2.8},其中每个树为一棵只有根结点且其权为给定值的二叉树。 

(2)从F中选取根结点的权最小的两棵二叉树0.5和0.8,构造一棵分别以0.5和0.8为左、右子树的新的二叉树,且置该二叉树的根结点的权0.5+0.8=1.3。
(3)从F中删去0.5和0.8,并将1.3加入F。此时F= {1.3, 1.4, 2.2, 2.3, 2.8}。此时F中仍多于一棵二叉树,则返回(2),直到F中只含一棵二叉树为止,这棵二叉树就是哈夫曼树,如下图:


将哈夫曼树中每个结点的左分支标志“0”,每个结点的右分支标志为“1”,这样,从根到每个叶结点形成序列,将该序列作为叶结点对应字符的编码,由此得到的二进制编码称为哈夫曼编码。