霍夫曼编码判断

霍夫曼编码判断

@(算法学习)

霍夫曼编码一定是前缀编码,即,没有任何一个编码是另一个编码的前缀。

此外,还需要明白霍夫曼编码构建的树中只有度为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, 1
D. 00 ,100, 101, 110, 111

分析:如果用前缀编码的思路做,发现都满足要求,因此无法区分,此时不要惊慌,以为找不到方法了,实际上,只需要快速画出树形即可。

霍夫曼树的构造很简洁不是吗?

以A项为例:

霍夫曼编码判断_第1张图片

符合要求;

再同样的去构造,看到D:

霍夫曼编码判断_第2张图片

显然是不合理的,因此,D项错。

2019.10 Update:

第一届PAT算法直播课培训班招募帖,欢迎点击查看详情、

END.

你可能感兴趣的:(算法学习)