1、二叉树的深度为k,则二叉树最少有()个结点。
A、2^k-1
B、2^(k-1)
C、2k
D、k
答案:D
求最少,每层只有一个结点,k层有k个
2、某二叉树的中序序列为ABCDEFG,后序序列为BDCAFGE,则其左子树中结点数目为()
A、3
B、4
C、5
D、6
答案:B
由后续序列最后一个结点E得该树根结点为E,在中序中,在E左边的结点全是左子树中结点
3、设一棵二叉树的中序遍历序列:badce,后序遍历序列:bdeca,则二叉树先序遍历序列为()
A、adbce
B、decab
C、abcde
D、debac
答案:C
从后序序列从后往前依次处理每个结点
4、树最适合用来表示()。
A、有序数据元素
B、无序数据元素
C、元素之间具有分支层次关系的数据
D、元素之间无联系的数据
答案:C
5、二叉树是非线性数据结构,所以()。
A、它不能用顺序存储结构存储
B、它不能用链式存储结构存储
C、顺序存储结构和链式存储结构都能存储
D、顺序存储结构和链式存储结构都不能使用
答案:C
6、将一棵有100个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为()。
A、99
B、98
C、50
D、48
答案B
完全二叉树中,左孩子编号是父结点的二倍
7、在线索二叉树中,t所指结点没有左子树的充要条件是()。
A、t->left==NULL
B、t->ltag==1
C、t->ltag==1&&t->left==NULL
D、以上都不对
答案:B
线索二叉树中有ltag,rtag的值一般为0或1,当值为0时,相对应的lchild或rchild指向左/右孩子,当值为1时表示没有孩子结点,相对应的lchild或rchild指向其线索
8、把一棵树转换为二叉树后,这棵二叉树的形态是()。
A、唯一的
B、有多种
C、有多种,但根结点都没有左孩子
D、有多种,但根结点都没有右孩子
答案:A
9、设一棵完全二叉树有700个结点,则共有()个叶子结点。
A、300
B、350
C、550
D、700
答案:B
满二叉树结点个数为1,3,7,15,31,63,127,255,511,1023,....
在本题中,二叉树节点个数在511到1023之间,在最下层有700-512=188个叶子结点,倒数第二层结点个数为256,叶子结点个数为256-188/2=162
叶子结点个数:188+162=350
10、中序遍历的递归算法平均空间复杂度为()。
A、O(1)
B、O(log(2)n)
C、O(ln n)
D、O(n)
答案:D
11、用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman)树的带权路径长度是()。
A、32
B、33
C、34
D、35
答案:B
12、对一个满二叉树,m个树叶,n个结点,深度为h,则()。
A、m=h-1
B、h+m=2n
C、n=2^h-1
D、n=h+m
答案:C
了解满二叉树的性质,构造一个随机满二叉树,例如深度h=4的满二叉树,结点数n=15,树叶m=8
代入选项易得答案
13、设给定权值总数有n 个,其哈夫曼树的结点总数为()。
A、2n
B、2n+1
C、2n-1
D、不确定
答案:C
构造随机哈夫曼树可得结果
14、现有按中序遍历二叉树的结果是abc,问有()种不同形态的二叉树可以得到这一遍历结果。
A、5
B、4
C、3
D、2
答案:A
15、具有n(n>0)个结点的完全二叉树的深度为()。
A、log(2)n向上取整
B、log(2)n向下取整
C、log(2)n向下取整+1
D、log(2)n向上取整+1
答案:C
16、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()。
A、9
B、11
C、13
D、15
答案:B
在树中,结点总数之和等于所有度之和+1,度之和为10*2+5*1=25,因此结点数等于26
度为0的结点数是26-10-5=11
17、有关二叉树下列说法正确的是()。
A、一棵二叉树的度可以小于2
B、二叉树的度为2
C、二叉树中至少有一个结点的度为2
D、二叉树中任何一个结点的度都为2
答案:A
理解二叉树的概念,例证:只有一个节点的树也可以是一棵二叉树
18、利用二叉链表存储树,则根结点的右指针是()。
A、指向最左孩子
B、指向最右孩子
C、非空
D、空
答案:D
学习树与二叉树的转换,数转为二叉树后,根结点只有左孩子
19、对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用()次序的遍历实现编号。
A、先序
B、中序
C、后序
D、层次遍历
答案:C
根大于左右孩子,选择“根-左-右”的顺序,即后序
20、已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为()。
A、CBEFDA
B、FEDCBA
C、CBEDFA
D、不定
答案:A
根据第3题,先利用中序,前序遍历结果,得出树,再由树得出后序遍历结果
第三题从后序倒数一个个加入,本体给出前序,则按顺序一个个向后加入树,方法同3题
21、已知一棵完全二叉树的第6层(设根为第1层)有6个叶子结点,则该完全二叉树的结点个数最多是()。
A、37
B、51
C、115
D、121
答案:C
第六层有6个叶子结点的树有两种,一种是六层树,一种是七层树,本题求最多,选择七层树。一到六层为满,共2^6-1=63,第六层结点个数为2^5=32个结点,第六层有6个结点没有孩子,得出第七层有2*(32-6)=52.总个数63+52=115
22、引入二叉线索树的目的是()。
A、为了能在二叉树中方便的进行插入与删除
B、为了能方便的找到双亲
C、加快查找结点的前驱或后继的速度
D、使二叉树的遍历结果唯一
答案:C
23、若X是二叉中序线索树中一个有左孩子的结点,且X不为根,则x的前驱为()。
A、X的双亲
B、X的右子树中最左的结点
C、X的左子树中最右结点
D、X的左子树中最右叶结点
答案:C
X有左孩子,在中序线索数中,X的前一个结点是左子树中的最右节点
24、n个结点的线索二叉树上含有的线索数为()。
A、2n
B、n+1
C、n
D、n-1
答案:B
每个结点有一个lchild,一个rchild,n个结点,共有2n个指针,在2n个指针中有n-1个指向自己的孩子结点(该树的度),因此线索数有2n-(n-1)=n+1
25、下述编码中哪一个不是前缀码()。
A、(00,01,10,11)
B、(0,10,110,111)
C、(0,1,00,11)
D、(1,01,000,001)
答案:C
在前缀码中,任何一个编码序列都不会是其他编码序列的开头部分。按此原则逐一排除
C选项中存在0,而00的前缀有0,存在1而11的前缀有1,因此不是前缀码。
26、一个具有1025个结点的二叉树的高h为()。
A、10
B、11
C、10至1024之间
D、11至1025之间
答案:D
最低高度为完全二叉树,在1025区间周围的满二叉树有:10层满二叉树:2^10-1=1023个结点因此该树最低11层。
最高:每个结点为1层,1025层为最高
27、实现二叉树后序遍历的非递归算法,如果不能用栈,那最佳方案采用的存储结构是()。
A、二叉链表
B、广义表
C、三叉链表
D、顺序表
答案:C
28、设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1则T中的叶子数为()。
A、5
B、6
C、7
D、8
答案:D
度的总数:度的总数:1*4+2*2+1*3+1*4=15,结点个数=度个数+1=16,因此度为0即叶子结点的个数为16-4-2-1-1=8
29、n(n≥2)个权值均不相同的字符构成哈夫曼树,关于该树的叙述中,错误的是()。
A、该树不一定是一棵完全二叉树
B、树中有度为0,1,2的结点
C、树中任一非叶子结点的权值一定不小于下一层任一结点的权值
D、树中两个权值最小的结点一定是兄弟结点
答案:B
A哈夫曼树一定是完全二叉树
B哈夫曼树中没有度为1的结点
C双亲结点权值为孩子结点权值之和
D哈夫曼树构造一般从最小的两个节点开始,当前剩余权值中选择最小的两个加入树中
30、从下列有关树的叙述中,正确的叙述是()。
A、将一棵树转换成二叉树后,根结点没有左子树。
B、在二叉树中插入结点,该二叉树便不再是二叉树。
C、哈夫曼树是带权路径最短的树,路径上权值较大的结点离根较近。
D、用一维数组存储二叉树时,总是以前序周游存储结点。
答案:C
A,树转为二叉树,根结点没有右子树
B,反例:一棵只有根结点的二叉树,插入一个节点后,还是二叉树
D,一维数组存储二叉树时,通常使用顺序存储结构,其中节点的存储顺序与层次遍历的顺序相对应
31、设一棵度为m的树有n个结点,则()。
A、树的高度最大是n-m+1
B、树的高度最大是n-m
C、第i层最多有m(i-1)个结点
D、至少在某一层上正好有m个结点
答案:A
CD的情况有可能出现,但无法确定
最大高度的情况,只有一个度为m的结点,计算得出最大高度为n-m+1
32、按照树的定义,具有3个结点的树有()种形态。
A、2
B、3
C、4
D、5
答案:A
注意:本题为“根据树的定义”而不是“根据二叉树的定义”,因此不分左右
33、假定一棵三叉树的结点数为60,则它的最小高度为()。
A、4
B、5
C、6
D、7
答案:B
最小高度时,为完全三叉树,满三叉树结点个数为(3^n-1)/2,4层满三叉树结点个数40,五层满三叉树121个结点,得出答案5层
34、下面关于树的描述错误的是()。
A、树可以看作是特殊的无向图
B、度为m的树至少有一个度为m的结点,不存在度大于m的结点
C、一棵m叉树就是度等于m的树
D、树中任意两个结点之间的路径是唯一的
答案:C
这里对m叉树的概念理解有误,m叉树是一种特殊的树结构,每个节点最多可以有m个子节点。m叉树中的节点可以有0到m个子节点。反例:只有一个结点的数也可以是一颗m叉树
35、设高度为h的二叉树中只有度为0和度为2的结点,称这种二叉树为正则二叉树,它所包含的结点数最少为 ()。
A、2h
B、2h-1
C、2h+1
D、2^h-1
答案:B
求结点数最少,因此除根结点外每层都只有两个节点,高为h结点数为2h-1
36、设一棵二叉树有2n个结点,则不可能存在()的结点。
A、n个度为0
B、偶数个度为0
C、偶数个度为2
D、偶数个度为1
答案:D
结点个数为2n,度的总数为2n-1,为奇数,只有奇数个度为1的结点才能产生这样的情况
37、一棵高度为h的完全二叉树最多有()个结点。
A、2^(h-1)-1
B、2^(h-1)
C、2^h-1
D、2^h
答案:C
最多结点数高度h的完全二叉树即高度为h的满二叉树
38、已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则该完全二叉树的节点个数最少为()。
A、119
B、111
C、52
D、39
因本题求最少结点,因此取6层的二叉树,前五层为满,第六层有8个结点,总结点数:8+2^5-1=39
39、在一棵二叉树中有两个结点x和y,在该二叉树的先序遍历序列中x在y之前,在其后序遍历序列中x在y之后,则x和y的关系是()。
A、x是y的左兄弟
B、x是y的右兄弟
C、x是y的子孙
D、x是y的祖先
答案:D