我正在练习有关信息传递的课程。我们需要将霍夫曼编码为二进制代码字母。
源字母有四个具有概率的符号:
因此,对于霍夫曼,我以概率最低的两个符号表示,在本示例中为C和D。我用两个叶子(C和D)构造了一个子树。 列表中的下一个符号B的机会为0.3。
我现在可以做两件事。要么用A&B构造第二个子树,因为B的几率与子树CD的值相同。第二种选择是将B与子树CD放在一起,并创建一个更大的树,其值是0.6。
在下图中,您看到了我得到的两个选项。第一棵树制作两个子树并将它们放在一起。第二棵树是我们将B插入树的地方
我现在的问题是我应该选择哪种方法?制作一个新的子树以获得相等的概率?或将相等的概率放入树中?
答案 0 :(得分:1)
在这种情况下,应用程序霍夫曼算法中只有一个选择。在每个步骤中,您都必须选择两个最低概率。第二步是0.3(B)和0.3(C&D)。您不能在该步骤中使用A,因为它的可能性较高,为0.4。因此,您绘制的第一棵树是错误的,因为它不是应用霍夫曼算法的结果。
您绘制的第二棵树也不正确。或至少不正确地绘制。二叉树在任何时刻都只能有两个分支。它不能有三个。正确的树是A&(B&(C&D))。