霍夫曼树的构造如何左右两侧有元素

时间:2013-09-07 21:26:50

标签: huffman-code

我正在尝试从某些频率创建一个霍夫曼代码。我知道怎么做但我只有一个混乱,在哪一方(左或右?)我们将把哪个元素。

我的意思是我对霍夫曼树的想法是 - (1)首先,我们按降序排列所有频率。 (2)取最小的两个并合并它们。 **但是我不明白两个频率中的哪一个会进入正确的位置,哪个进入左侧**我知道在右侧我们有'0'而右侧我们有'1'。但是哪个频率要保持在右边或左边,我不知道。我们在什么基础上这样做?

2 个答案:

答案 0 :(得分:0)

由于我不完全理解你的问题,我会给你一个关于霍夫曼编码的简单例子:

A: 0.5
B: 0.1
C: 0.2
D: 0.15
E: 0.05

现在按频率降序排列:

A: 0.5
C: 0.2
D: 0.15
B: 0.1
E: 0.05

现在我们将底部两个结合起来:

A: 0.5
C: 0.2
D: 0.15
B+E: 0.15

我们继续这样做,直到我们有一个完全二叉树。在这个例子中: A = 0, C = 10, D = 110, B = 1110, E = 11110 只要您的解压缩程序知道如何读取它,我们选择以0或1继续树是无关紧要的。

答案 1 :(得分:0)

您可以让左侧或右侧的子节点与整体解决方案无关。我们只会看到这些值的长度0& 1.