1

在霍夫曼算法中,我们形成一棵树,然后用树值 1 和 0 替换每个字符,为什么我们不简单地使用二进制数字等a=0,b=1,c=10,d=01,e=11而不是用字符替换它们,并且在解压缩时应用反向并替换带有字母的二进制数字。

像这样:

character Huffman-code binary-code
a            00            0
b            01            1
c            101           01

等等...

4

1 回答 1

2

霍夫曼编码的重要条件是没有两个是彼此的前缀。如果您只是重新编号(因为我认为这是您的建议),您将失去此属性。

要了解为什么会中断,请查看“01”作为输出。在非霍夫曼版本中,它可能是“0”后跟“1”(因此是“ab”)或“01”(因此是“c”),您无法分辨哪个。

于 2015-04-08T13:23:58.713 回答