首先,按照出现频率从小到大排序,得到:'C', 'E', 'F', 'H', 'A', 'D', 'G', 'B'。

然后,构建哈夫曼树:

  1. 将最小的两个频率'C'和'E'合并,得到频率为0.09的节点'CE'。
  2. 将下一个最小频率'F'和'CE'合并,得到频率为0.12的节点'FCE'。
  3. 将下一个最小频率'H'和'A'合并,得到频率为0.17的节点'HA'。
  4. 将下一个最小频率'D'和'G'合并,得到频率为0.24的节点'DG'。
  5. 将下一个最小频率'FCE'和'HA'合并,得到频率为0.29的节点'FCEHA'。
  6. 将下一个最小频率'B'和'FCEHA'合并,得到频率为1的节点'BFCEHA'。

最后,根据哈夫曼树得到每个字母的编码:

A:100 B:0 C:1100 D:101 E:111 F:1101 G:1000 H:1110

注意,每个字母的编码都不是其他字母编码的前缀,因此这是一种前缀编码,可以唯一地解码出原始电文。

哈夫曼编码示例:八个字母电文编码

原文地址: https://www.cveoy.top/t/topic/oevj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录