【发布时间】:2020-05-05 03:25:05
【问题描述】:
霍夫曼编码是一种根据频率对字符进行编码的方法。每个字母都分配有一个可变长度的二进制字符串,例如 0101 或 111110,其中较短的长度对应于更常见的字母。为了实现这一点,构建了一棵二叉树,以便从根到任何叶子的路径唯一地映射到一个字符。遍历路径时,向左孩子下降对应前缀中的 0,而向右下降对应 1。
这是一个示例树(注意只有叶节点有字母):
*
/ \
* *
/ \ / \
* a t *
/ \
c s
使用这种编码,猫将被表示为 0000110111。
给定一个字符频率字典,构建一棵 Huffman 树,并使用它来确定字符与其编码的二进制字符串之间的映射。
【问题讨论】:
标签: algorithm data-structures tree huffman-code