【问题标题】:Is there a way to restore frequency array from Huffman tree?有没有办法从霍夫曼树中恢复频率数组?
【发布时间】:2014-11-26 21:58:47
【问题描述】:

大多数人在实现学习霍夫曼算法时,更喜欢存储频率数组,而不是霍夫曼树。但有时我想存储霍夫曼树。例如,它允许立即解码数据。

不幸的是,我不知道如何从霍夫曼树中恢复频率数组。另外,不知道有没有可能。

【问题讨论】:

  • 如果您有树,则无需恢复频率阵列。除非存储树节点,否则不可能获得符号的确切频率。要获得近似频率,请将父频率除以 2 并将其分配给子频率,直到您到达树叶为止。根的频率是1

标签: algorithm binary-tree decoding huffman-code


【解决方案1】:

不清楚为什么要恢复频率阵列。正如您所说,您只需要解码树即可。 (您甚至不需要发送树 - 您只需发送每个符号的位数,并从中生成规范的 Huffman 代码。)

您没有足够的信息来恢复原始频率阵列。但是,您可以轻松地构造 a 频率数组来重现该树。使最长的代码频率为 1,频率少一位的代码为 2,少两位的频率为 4,以此类推。

【讨论】:

    【解决方案2】:

    IMO 当你有频率时,你可以简单地用相同的功能重建树,例如更大或更少。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      相关资源
      最近更新 更多