某段文本中各个字母出现的频率分别是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼编码,则哪种是可能的编码:()
- a(000) b(001) h(01) i(10) o(11)
- a(0000) b(0001) h(001) o(01) i(1)
- a(000) b(001) h(01) i(10) o(00)
- a(0000) b(0001) h(001) o(000) i(1)
创建一个哈夫曼树,原则如下:
1. 将每个英文字母依照出现频率由小排到大,最小在左,组成一个序列;
2. 每个字母都代表一个终端节点(叶节点),比较每个字母的出现频率,将最小的两个字母频率相加合成一个新的节点,将两个字母从序列中删除,将生成的节点加入到字母队列中;
3. 重复前面两步,直到序列中没有字母为止。