有效的霍夫曼代码?

时间:2016-11-05 23:38:21

标签: theory huffman-code

我正在尝试解决霍夫曼编码问题,但我并不完全确定我完全理解这个话题。我想弄清楚以下是否是有效的霍夫曼代码:

A: 0  
B: 01  
C: 11  
D: 110  
E: 111  

我在想的是它无效,因为A或1会侵犯B或01.虽然我不是正面的。有人可以启发我吗?

编辑:对不起,我打算输入A为0而不是1。

1 个答案:

答案 0 :(得分:1)

没有。霍夫曼代码是前缀代码,这意味着没有代码可以是任何其他代码的前缀。在您的示例中,A是B的前缀,C是D和E的前缀。

有效的前缀代码为:

A: 0
B: 10
C: 11

您可以使用长度为1,2和2的代码。任何其他代码都是这些代码的前缀。不可能有长度为1,2,3,3和3的前缀代码。

这是五个符号的有效前缀代码:

A: 0
B: 10
C: 110
D: 1110
E: 1111

就是这样:

A: 00
B: 01
C: 10
D: 110
E: 111