选择题
a,b,c,d,e 对应出现的频率为4,6,11,13,15;以下符合哈夫曼编码的选项是?()
A. a=000、b=01、c=001、d=10、e=11
B. a=000、b=001、c=01、d=10、e=11
C. a=010、b=001、c=01、d=11、e=10
D. a=000、b=10、c=001、d=11、e=01
链接:原题地址
来源:牛客网
答案:B
解题分析
解题分析转自 牛客网 ID名为 掌心里的小雨,若有侵权,请通告。
哈夫曼编码
- 哈夫曼编码的目的就是数据压缩,加密解密,将出现频率低的放在二叉树的靠最下面的层,从而使频率高的能被更快的找到,实现数据压缩的功能
- 主要的编码过程是:
- 1.由于题目中这个频率是排好序的,可以看做有序序列。先取两个最小(a,b)作为一个新结点n1的两个子结点,相对较小的是左孩子,新结点的频率就是a,b两个频率的相加,即4+6=10;然后将新结点n1替换a,b插入有序序列,整个就是{n1,c,d,e};
- 然后再取最小的两个结点(n1,c),产生的新结点n2的频率为10+11=21,继续替换n1,c插入有序序列,整个就是{d,e,n2};
- 然后再取最小的两个结点(d,e),产生的新结点n3的频率为13+15=28,继续替换d,e插入有序序列,序列就剩2个结点,小的作为左结点,大的是右节点,共同指向根结点T,最后哈夫曼树就可画出来了。
- 最后将左分支改为0,右分支改为1,哈夫曼编码就是从树根到叶子所经过的0和1组成的,从这里可以看出,a的频率最低,出现在最低层的叶子结点,达到数据压缩的目的
*
对一棵先序遍历节点编号为12435678,中序遍历为42165738的二叉树,进行左子节点优先的广度优先遍历,搜索到编号为6的节点需要几次查询()
A. 5
B. 6
C. 7
D. 8
答案:C
解题分析
-
先序遍历:根 —> 左 —> 右
-
中序遍历&#x