本文主要是介绍霍夫曼编码判断,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
霍夫曼编码判断
@(算法学习)
霍夫曼编码一定是前缀编码,即,没有任何一个编码是另一个编码的前缀。
此外,还需要明白霍夫曼编码构建的树中只有度为0和2的结点,不存在度为1的结点。这与玩全二叉树是不一样的概念,玩全二叉树允许有度为1的结点。
看一道题目:
(1.6)根据使用频率为5个字符设计的霍夫曼编码不可能是:D
A. 000 ,001, 010, 011, 1
B. 0000 ,0001, 001, 01, 1
C. 000 ,001, 01, 10, 11
D. 00 ,100, 101, 110, 111
分析:如果用前缀编码的思路做,发现都满足要求,因此无法区分,此时不要惊慌,以为找不到方法了,实际上,只需要快速画出树形即可。
霍夫曼树的构造很简洁不是吗?
以A项为例:
符合要求;
再同样的去构造,看到D:
显然是不合理的,因此,D项错。
END.
这篇关于霍夫曼编码判断的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!