A.叶子结点总是比度为2的结点少一个
B.叶子结点总是比度为2的结点多一个
C.叶子结点数是度为2的结点数的两倍
D.度为2的结点数是度为1的结点数的两倍
解析:
设结点总数为n,度为0的叶节点为n0,度为1的节点为n1,度为2的结点为n2。
结点总数n=n0+n1+n2 。 ---------(1)
因为,结点,除了根结点之外,其他都是子节点。所以结点总数=根节点+子节点 。而子节点的总数等于度为1对应的子节点+度为2对应的子结点。
所以,结点总数n=1+n1+2n2 ------------(2)
由(1)(2) 得 n0= n2+1 ,故度为0的叶节点的个数等于度为2的结点数+1。
解析:
创建哈夫曼树是从底层往上匹配建树,所以每个节点度为2或者度为0(叶节点)
A.79
B.76
C.56
D.81
解析:
设:n0为叶子结点,n1为度为1的结点,n2为度为2的结点,n为总结点;则:n=n0+n1+n2.
已知n0=30,n1=20。又因为二叉树中度为2的结点数目=叶子结点数目-1,所以n2=n0-1=29。所以n=30+20+29=79,故二叉树共有79个节点。
A.edgfbca
B.egdfbca
C.cgefdba
D.cegdfba
A.B-树是一种平衡的多路查找树
B.树中每个结点至多有m棵子树
C.若根结点不是叶子结点,则至少有两棵子树
D.B-树中的叶子结点可出现在不同层次上
解析:
看下方链接,漫画形式,很清晰。
https://www.sohu.com/a/154640931_478315
解析:
二叉树中每个结点有:①两棵非空子树;②两棵空子树;③一棵子树。上题适合满二叉树。
解析:
完全二叉树的定义:对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。
A.中序序列
B.前序序列
C.后序序列
D.前序序列或后序序列
解析:
二叉排序树特点是左子树的值小于根节点的值,右子树的值大于根节点的值,通过中序遍历,先访问左子树,再访问根节点,最后访问右子树,这样输出序列为排序好的升序序列。
如下图的排序树:
A.N-1
B.N
C.N+1
D.N+2
解析:
n个结点的二叉树,度只可能是0,1,2,分别设其对应的结点个数为n0,n1,n2,则有n=n0+n1+n2;又n结点的树只有n-1条边,故n-1=n1+2*n2
两式联合起来,可等到等式n0=n2+1。
A.4
B.5
C.3
D.6
解析:
因为 完全二叉树结点数 <= 同深度的满二叉树;其次,深度为N的满二叉树结点为:2 N -1。又因为7<12<15,所以完全二叉树深度只能是4。
A.队列
B.栈
C.线性表
D.有序表
解析:
在按层次遍历二叉树的算法中,需要借助的辅助数据结构是队列。
二叉树的先序、中序、后序遍历的非递归实现需要借助栈这一数据结构实现。
A.中序遍历序列
B.前序遍历序列
C.后序遍历序列
D.层次顺序
解析:
左孩子若为x,则父节点为x-1,右孩子为x+1,按照顺序则:父左右,即根左右的顺序即为前序遍历
A.BC
B.AC
C.DF
D.CF
A.可以通过建立二叉搜索树索引使得在集合中查找元素的时间复杂度降到O(logN)
B.可以进行快排,排序后使用二分查找可以使得在集合中查找元素的时间复杂度降到O(logN)
C.可以通过B树索引使得在集合中查找元素的时间复杂度降到O(logN)
D.可以通过hash索引使得在集合中查找元素的时间复杂度降到O(1)
解析:
排除法,ABC都需要比较大小的传递性,否则无法实现,而哈希所以可以认为是单纯的数值计算,并没有大小比较操作,故选D。
A.9
B.10
C.11
D.12
解析:
最小高度自然就是等于2000个结点的完全二叉树的高度。设根结点高度为1,n个结点完全二叉树高度:下取整(log2n) + 1。现在是下取整(log2(2000)) + 1= 11
A.B,E,H,C,I,G,F,A,D
B.B,H,E,C,I,G,F,A,D
C.B,H,E,C,I,G,A,F,D
D.B,H,E,C,G,I,F,A,D
A.24,10,5 和 24,10,7
B.24,10,5 和 24,12,7
C.24,10,10 和 24,14,11
D.24,10,5 和 24,14,6
解析:
在哈夫曼树中,左右孩子权值之和为父结点权值。第一个都是 24 ,说明 24 是根, 24 是由子节点之和组成,排除 AB。子节点不能比父节点大或者相等(子节点之和为父节点值),所以排除 C。选D
A.GHBADFCE
B.DGBAFHEC
C.BADGFHCE
D.BAGDFHEC
A.{46,36,18,28,35}
B.{18,36,28,46,35}
C.{46,28,18,36,35}
D.{28,36,18,46,35}
解析:
B:{18,36,28,46,35}
1、 一开始查找范围(-∞,+∞)
2、 遇到18,由于18<35更新查找范围为(18,+∞),范围减小
3、 遇到36,由于35<36更新查找范围为(18,36),范围减小
4、 遇到28,由于28<35更新查找范围为(28,36),范围减小
5、 遇到46,由于35<46更新查找范围为(28,46),范围增大,不合理。或者,46不在(28, 36)之间,因此不可能出现46.
C:{46,28,18,36,35}
1、 一开始查找范围(-∞,+∞)
2、 遇到46,由于46>35更新查找范围为(-∞,46),范围减小
3、 遇到28,由于28<35更新查找范围为(28,46),范围减小
2、 遇到18,由于18<35更新查找范围为(18,46),范围增大,不合理。或者,18不在(28, 46)之间,因此不可能出现18.
D:{28,36,18,46,35}
1、 一开始查找范围(-∞,+∞)
2、 遇到28,由于28<35更新查找范围为(28,+∞),范围减小
3、 遇到36,由于35<36更新查找范围为(28,36),范围减小
2、 遇到18,由于18<35更新查找范围为(18,36),范围增大,不合理。
或者,18不在(28, 36)之间,因此不可能出现18.
综上选A
A.n
B.n+1
C.n-1
D.n/2
解析:
完全二叉树中,有n2 = n0 - 1;再根据题设条件,得n0 + n1 + n2 = 2n;则可得:2n0 + n1 - 1 = 2n;完全二叉树中,n1只能为0或1,由于2n为偶数,故n1 = 1;因此,n0 = n。
A.小或相等
B.小
C.大或相等
D.大
解析:
BFS是广度优先遍历,DFS是深度优先遍历。对于一些特殊的图,比如只有一个顶点的图,其BFS生成树的树高和DFS生成树的树高相等。一般的图,根据图的BFS生成树和DFS树的算法思想,BFS生成树的树高比DFS生成树的树高小
A.若有一个结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是该子树的前序遍历结果序列的最后一个结点。
B.若有一个结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是该子树的中序遍历结果序列的最后一个结点。
C.若有一个页子结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是该子树的前序遍历结果序列的最后一个结点。
D.若有一个页子结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是该子树的中序遍历结果序列的最后一个结点。
解析:
中序遍历的顺序是左根右,前序遍历的顺序是根左右,因此要保证最后一个节点相同的话,也就是要保证存在右子树,若中序遍历的最后一个结点是叶子节点的话说明根结点一定存在右子树。而前序遍历的最后一个是叶子结点的话不能保证根节点有右子树。(该叶子结点可能是根结点左子树的)。因此C对。
A.只有左子树
B.只有右子树
C.结点的度均为1
D.结点的度均为2
解析:
先序序列是先父结点,接着左子树,然后右子树。中序序列是先左子树,接着父结点,然后右子树,递归进行。如果所有非叶结点只有右子树,先序序列和中序序列都是先父结点,然后右子树,递归进行,因此B正确。
A.2n1+n2+1
B.n1+n2
C.n1+2n2+1
D.2*n1+n2
解析:
先序遍历是M-L-R,后序遍历顺序是:L-R-M,所以只有中间节点顺序变化了,左右节点位置不变,因此这个树的高度一定等于其节点数,总结点数为N1 + 2N2 + 1。
A.该树一定是一棵完全二叉树
B.树中一定没有度为1的结点
C.树中两个权值最小的结点一定是兄弟结点
D.树中任一非叶结点的权值一定不小于下一层任一结点的权值
解析:
A.哈夫曼树也叫最右二叉树和带权路径最小树,是一颗二叉树,但并不一定是完全的二叉树。
B.结点的孩子个数称为结点的度,哈夫曼树中只有度为2的结点和度为0的叶子结点。
C.哈夫曼树的构造是从底到上,从小到大,所以最小权值的两个结点一定用于底部,是兄弟结点。
D.根据哈弗曼树的定义,一棵二叉树要使其WPL值最小,必须使权值越大的叶子结点越靠近根结点,而权值越小的叶子结点越远离根结点,任一非叶子结点的权值是等于其自己孩子结点权值之和,大于或等于下一层的任一结点的权值。
解析:
N个节点的二叉树,若用二叉链表表示 则每个节点都有两个链域 也就是2N个 ,然后除了根节点外 每个节点都能但只能被指一次,所以有N-1个链域不为空 因而 有N+1个链域为空。
解析:
第1层节点数为2^0
第2层节点数为2^1
第3层节点数为2^2
第4层节点数为2^3
……
第k层节点数为2^(k-1)
所以满二叉树的总节点数为20+21……+2(k-1)=2(k)-1
可知,所有深度为k的二叉树的节点数都小于等于深度为k的满二叉树的节点数。所以所有深度为k的二叉树的节点数都小于等于2^(k)-1
A.2
B.3
C.4
D.5
A.空或只有一个结点
B.高度等于其结点数
C.任一结点无左孩子
D.任一结点无右孩子
解析:由于先序遍历是“根―左子树―右子树”,而后序遍历是“左子树―右子树―根”,若某二叉树的先序和后序序列正好相反,则该二叉树每层左、右子树只能有1个,即则该二叉树一定是高度等于其结点数。
解析:
完全二叉树的特点是:
1)只允许最后一层有空缺结点且空缺在右边,即叶子结点只能在层次最大的两层上出现;
2)对任一结点,如果其右子树的深度为j,则其左子树的深度必为j或j+1。 即度为1的点只有1个或0个。如果根节点没有左子树,对于完全二叉树,也不会有右子树,就是一个只有一个顶点的二叉树,也是叶子节点
A.完全二叉树
B.二叉排序树
C.堆
D.哈夫曼树
解析:
在构成二叉排序树的过程中进行“平衡化”处理,成为二叉平衡树。
A.2n
B.n+l
C.n-l
解析:
无论是什么样的二叉链表,空线索数由度为1和度为0的节点所提供,其中一个度为1的节点提供1个空线索数,一个度为0的节点提供2个空线索数,即总的空线索数为2n0+n1,又因为n0=n2+1,所以2n0+n1=n0+n1+n2+1=n+1。
解析:
树中是不存在环的,对于有N个节点的树,必定是N-1条边 。
解析:
二叉树与树是不同的,二叉树不等价于分支树最多为二的有序树。当一个结点只包含一个子节点时,对于有序树并无左右孩子之分,而对于二叉树来说依然有左右孩子之分,所以二叉树与树是两种不同的结构。
A.41
B.82
C.113
D.122
解析:
设N为总的节点数:
总的度=20 * 4+10 * 3+1 * 2+10 * 1=122=N-1,所以N=123.
而N又=20+10+1+10+n(n为度为0的点,即叶子)即n=82。
A.2h
B.2h+1
C.2h-1
D.h+1
A.O(1)
B.O(n)
C.O(log2n)
D.O(n^2)
解析:
最坏的情况就是一直往一侧插入,形似单链表,这样的话就需要逐个去比较进行插入,所以时间复杂的为O(n)。
A.abcdefg
B.gfedcba
C.bcdefga
D.bceadfg
E.bcdaefg
A.树中所有结点可以有0个或多个后继结点
B.二叉树中至少有一个结点的度为 2
C.在AVL树中根节点的左右子树的深度最多相差1
D.Huffman树一定是AVL树
解析:
B.单支二叉树节点的度不为2
D.哈夫曼树只是一棵最优二叉树,不一定是完全二叉树,也不一定是平衡二叉树哈夫曼树不关注树的结构,只关注带权路径长度。
A.0
B.1
C.2
D.3
解析:
对了结点>=3的树,随便删掉一个非叶结点就可以使得这棵树不连通。
A.只有左子树
B.只有右子树
C.节点的度为1
D.节点的度为2
解析:
先序:根左右;中序:左根右。先序和中序序列一致,那么二叉树满足没左子树,只有右子树。
解析:
题目说完全二叉树至少有几个节点,最少的情况是:前h-1层是满二叉树,最后一层只有一个左子树,所以按照公式:深度为h-1的满二叉树的结点数有2(h-1)-1,那么h层的完全二叉树至少就有h-1层的满二叉树的结点数+一颗左子树,所以最后算的:2(h-1)。
A.直接选择排序是一种稳定的排序方法
B.哈弗曼树带权路径长度最短的树,路径上权值较大的结点离根较近
C.拓扑排序是指结点值得有序排序
D.当从一个最小堆中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整到合适位置
解析:
不稳定的排序:快速排序,希尔排序,选择排序,堆排序。