在Huffman算法中,我们形成一棵树,并将每个字符替换为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等等..。
发布于 2015-04-08 13:23:58
赫夫曼码的重要条件是没有两个是彼此的前缀。如果你只是重新编号他们(我认为这是你的建议),你失去了这个财产。
要了解为什么会出现这种情况,请将"01“作为输出。在非赫夫曼版本中,它可能是"0“,后面是"1”(例如"ab"),也可能是"01“(因此是"c"),您无法判断哪个版本。
https://stackoverflow.com/questions/29512111
复制相似问题