12.【2023 年第 10 题】假设有一组字符{a,b,c,d,e,f},各字符出现的频率分别为5%、9%、12%、13%、16%、45%。请问以下哪个选项是字符a,b,c,d,e,f分别对应的一组哈夫曼编码?( )
【解析】本题考查的是“哈夫曼编码”这一知识点。根据哈夫曼编码的生成过程,我们可以按照如下步骤得到字符 a,b,c,d,e,f分别对应的哈夫曼编码。
● 将所有字符按照出现频率从小到大排序,得到字符序列{a,b,c,d,e,f}。
● 取出频率最小的两个字符a和b,构建一棵二叉树,并将其根节点的频率设置为a和b的频率之和(5%+9% = 14%)。
● 将原序列中的a和b删除,并将新生成的节点插入序列中,得到新的字符序列{c,d,e,f,ab}。重复上述步骤,直至得到一棵包含所有字符的二叉树。
对于每条从根节点到叶子节点的路径,用0表示向左走,用1表示向右走,得到对应字符的哈夫曼编码 a(1111)、b(1110)、c(101)、d(100)、e(110)和f(0),故选A。
【答案】A