目录
一、判断题
二、选择题
在开始之前,先为大家推荐两篇介绍该章两个主要算法的的文章,供大家参考。
Huffman树:Huffman树
树,二叉树,森林的转化:树,二叉树,森林的转化
1、二叉树可以用二叉链表存储,树无法用二叉链表存储。F
解析:二叉树与树都可以用二叉链表作为存储结构,二者的关系是一棵树可以惟一对应一棵二叉树。
2、某二叉树的后序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无左孩子。F
解析:某二叉树的后序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无右孩子。(T)
后序:L,R,root 中序:L,root,R 要想两个序列一样,一定无R。
3、在一棵二叉搜索树上查找63,序列39、101、25、80、70、59、63是一种可能的查找时的结点值比较序列。F
解析:
二叉搜索树或为空,或有以下性质:对任一结点,设其值为K,该结点的左子树的任意值都小于K,右的都大于K。
4、哈夫曼编码是一种最优的前缀码。对一个给定的字符集及其字符频率,其哈夫曼编码不一定是唯一的,但是每个字符的哈夫曼码的长度一定是唯一的。F
解析:哈夫曼字符的频率相同时每个字符的码长不是确定的。且哈夫曼树的构造并不是唯一的。
5、在一棵由包含4、5、6等等一系列整数结点构成的二叉搜索树中,如果结点4和6在树的同一层,那么可以断定结点5一定是结点4和6的父亲结点。F
解析:
6、对N(≥2)个权值均不相同的字符构造哈夫曼树,则树中任一非叶结点的权值一定不小于下一层任一结点的权值。T
解析:考察哈弗曼树的构造方法,哈弗曼树的构造思想就是贪心的思想,每次选择权值最小的两个节点来形成新的节点,自底向上建树,因此对于一棵哈弗曼树来说,树中任一非叶节点的权值一定不小于下一层的任意节点的权值。
7、一棵有124个结点的完全二叉树,其叶结点个数是确定的。T
解析:完全二叉树要按照从左到右,从上到下的规则插入元素,因此他的结构是唯一的,所以叶结点的个数是确定的。
8、完全二叉树中,若一个结点没有左孩子,则它必是树叶。T
解析:
即最多只有最下面两层的结点度数可以小于2,最下一层的结点都集中在最左侧。
9、二叉树就是度为二的有序树。F
解析:二叉树由一个根节点及两棵互不相交的左右子树组成,可以是空,独根,空左,空右,左右都不空。
10、给定一棵树,可以找到唯一的一棵二叉树与之对应。T
解析:给定一棵树,可以找到唯一的一颗二叉树与之对应。所有树都能转为唯一对应的二叉树。二叉树是递归结构。注意:二叉树不是树的特殊情况,它们是两种不同的数据结构。,同样,森林也与一棵树存在一一对应关系。
11、哈夫曼树的结点个数不能是偶数。T
解析:除叶子节点外,其他节点都有左右子节点,再加上根节点,所以是奇数。
12、若一个结点是某二叉树的中序遍历序列的最后一个结点,则它必是该树的前序遍历序列中的最后一个结点。F
解析:前序遍历是DLR,中序遍历是LDR,如果R不存在,那么这句话就是错的。
1、用二叉链表表示具有n个结点的二叉树时,值为空的指针域的个数为( )
A.n-1
B.2n
C.n
D.n+l
解析:二叉树的节点都有2个指针。每个节点有0个、1个或2个空指针。对应的有2个、1个、0个非空指针。非空指针的总数就是二叉树的边的个数。
设一个二叉树x个节点含有0个空指针,y个节点有1个空指针,z个节点有2个空指针
有如下等式
x+y+z=N 节点总数为N,
y+2*z=N+1空指针个数为N+1
2*x+y= N-1 二叉树的边数。树的边数=树的节点数-1
2、对于任意一棵高度为 5 且有 10 个结点的二叉树,若采用顺序存储结构保存,每个结点占 1 个存储单元(仅存放结点的数据信息),则存放该二叉树需要的存储单元的数量至少是:
A.15
B.10
C.16
D.31
解析:解析:因为是顺序存储结构保存,所以需要的存储单元是给定高度的全部结点都要考虑。
高度为5的满二叉树共有:2^5-1=31个结点,31*1个存储单元=31。
3、具有65个结点的完全二叉树其深度为(根的深度为1):
A.5
B.6
C.8
D.7
解析:应该是7 因为2^6-1< 65 < 2^7-1,在根的深度是0的情况下,二叉树的高度为7,深度为6.在根的深度是1的情况下,深度加1,为7。
4、已知森林 F 及与之对应的二叉树 T,若 F 的先根遍历序列是 a, b, c, d, e, f,后根遍历序列是 b, a, d, f, e, c,则 T 的后序遍历序列是:
A.f, e, d, c, b, a
B.b, f, e, d, c, a
C.b, a, d, f, e, c
D.b, d, f, e, c, a
解析: 一棵树的后根遍历与这棵树所对应的二叉树的中序遍历相同。由先根遍历序列a,b,c,d,e,f和中序遍历序列b,a,d,f,e,c可知,a为T的根,{b}为a的左子树结点,{dfec}为a的右子树结点。由先根遍历序列c,d,e,f和中序遍历序列d,f,e,c可知a的右子树为c,c的左子树中的结点有{d,e,f},右子树为空。由先根遍历序列d,e,f和中序遍历序列d,f,e,可知c的左子树为d,d的左子树为空,右子树的结点有{e,f}。由先根遍历序列e,f和中序遍历序列f,e可知d的右子树为e,e的右子树为空,左子树的结点有{f}。所以,T的后遍历序列为:bfedca。
5、设一段文本中包含字符{a, b, c, d, e},其出现频率相应为{3, 2, 5, 1, 1}。则经过哈夫曼编码后,文本所占字节数为
A.40
B.25
C.12
D.36
解析:所占字节数就是加权路径长。
6、已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则该完全二叉树的结点个数最多是:
A.111
B.119
C.52
D.39
解析:
完全二叉树的结点个数最多
第1层:1
第2层:2
第3层:4
第4层:8
第5层:16
第6层:32
第7层:48
相加为111个
如果第六层是满的话,那么第6层将会有32个节点,题目说只有8个叶节点,那只有两种情况:
1.6层只有8个节点,都是叶节点
2.6层节点满了,但有8个节点没有子节点,只能作为叶节点。
由于题目求更多:所以考虑第2钟情况:
这时候 前6层节点数为32+16+...+1 =63
第7层节点数:(32-8)*2=48 ——第6层节点数共32个,减去8个叶节点数,每个再带有两个子节点,相加——111。
7、已知某二叉树的后序遍历序列是dabec, 中序遍历序列是debac , 它的前序遍历是( )。cedba
A.decab
B.deabc
C.acbed
D.cedba
解析:
8、一棵二叉树中有7个度为2的结点和5个度为1的结点,其总共有( )个结点。
A.20
B.30
C.18
D.16
解析:2*7+1*5+1=20。
9、设哈夫曼树中有199个结点,则该哈夫曼树中有()个叶子结点。
A.100
B.101
C.102
D.99
解析:根据二叉树的性质:n2 = n0 - 1,列方程组得{n2 = n0 - 1, n0 + n2 = 199},解方程组得 n0 = 100,所以叶子结点有100个
上面的题目均是博主在期末考试前总结的重难点,欢迎各位大佬指正错误或者给出更优质的解析。