节点的右子树频率必须大于霍夫曼树中左子树的频率吗?

时间:2016-06-29 08:17:16

标签: data-structures encoding huffman-code

左子树的频率是否大于右?

huffman tree example

1 个答案:

答案 0 :(得分:3)

(标题提出了一个积极的问题,并且正文提出相应的否定问题,所以我不能回答是或否!)

您可以随意选择左侧和右侧,或者根据需要为左右分支分配0和1,您仍然可以获得最佳代码。所有更改都是代码值。您可以从该树生成128种不同的代码值集。

在实际应用程序中,每个代码的长度都是从树中派生出来的,此时树被丢弃。然后,您可以使用a canonical approach分配代码值。这将选择128个可能代码中的特定代码。然后接收器只需知道每个符号的代码长度即可解码。

顺便说一句,树中还有另外一种变化,即你可以选择D或L与U配对,因为它们具有相同的频率。这会产生两个不同的树,但由于生成的代码长度相同,所以仍然只有一个规范代码。