霍夫曼编码和霍夫曼树

问题描述 投票:0回答:2

我正在学习霍夫曼编码并试图找到以下答案:

  1. 哈夫曼树可以是一个列表吗?如果是,那么在什么情况下?如果不是,那为什么?
  2. 在哈夫曼编码中,是否可能恰好有两个码字长度最长的符号?如果是,那么在什么情况下?
huffman-code
2个回答
0
投票

哈夫曼树可以是一个列表吗?如果是,那么在什么情况下?如果不是,那为什么?

嗯,确切地说不是一个列表,但它可以是一棵树,其中所有左子节点都是叶子,唯一的右节点叶子将位于最深的节点上。当一个符号的概率高于所有其他节点的总和时,就会发生这种情况,然后在下一级,最可能的节点的分数高于其余节点的总和,依此类推,如本例所示:

   -
  / \
0.5  -
    / \
 0.25  -
      / \
    .10  -
        /  \
       .2  .1

(这仅显示概率,而不显示相应的符号,对于本次讨论来说,这些符号是任意的)

当然,对于一棵包含 256 个符号的树来说,要发生这种情况,最常见符号的总体数量需要非常大。

在哈夫曼编码中,是否可能恰好有两个码字长度最长的符号?如果是,那么在什么情况下?

当然 - 事实上,这正是上面树中所发生的情况:

   -
  / \
 0   - (1 - non-leaf)
    / \
 10    - (11 - non-leaf)
      / \
    110  - (111 - non-leaf)
        /  \
      1110  1111

-1
投票

不完全是一个列表,但它可以类似于一棵树,所有左子节点充当叶子,而右侧节点的单独叶子位于最深的节点上。检查此网站了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.