除了霍夫曼树之外,还有除最佳前缀码之外的树吗?它的高度是否与霍夫曼树的高度相同?

时间:2015-11-17 15:21:44

标签: algorithm tree huffman-code

我知道Huffman Tree是一种用于最优前缀代码的树,但是除了Huffman树之外还有用于最佳前缀代码的树吗?如果有某种树木,它们的高度是否相同? 非常感谢!

2 个答案:

答案 0 :(得分:0)

通过获取两个当前最低概率符号并将它们组合来递归地构造霍夫曼树。

如果存在具有相同低概率的其他符号,则可以组合这些符号。

这意味着最终树没有唯一定义,并且有多个最佳前缀代码可能具有不同的高度。

例如,请考虑以下符号和概率:

A 1/3
B 1/3
C 1/6
D 1/6

可以编码为:

A 0
B 10
C 110
D 111

A 00
B 01
C 10
D 11

两种编码的每个符号的预期位数等于2,但高度不同。

然而,所有最优前缀码都可以通过霍夫曼算法构造,以便在概率关系方面选择合适的排序。

答案 1 :(得分:0)

在霍夫曼码问题的约束下,即通过前缀唯一比特序列表示每个符号,则恰好可以实现一个最佳总比特数,并且霍夫曼算法实现了这一点。还有其他方法可以得出相同的答案。

正如Peter de Rivaz指出的那样,在某些特殊情况下,霍夫曼算法在某些步骤中有多个选择,其中两个最小概率代码集将被选择,这可能导致不同的树。因此,您提到的树高度/深度并不是唯一的,但总位数(每个符号的位长度加权的概率)总是相同的。