第19讲 树表的查找 课堂互动 隐藏答案 | 返回首页

作者:欧新宇(Xinyu OU)

最后更新:2023-12-20


【课前自测19】

1. 在含有 n 个结点的二叉排序树中查找某个关键字的结点时,最多进行()次比较。
A. n/2
B. log₂n
C. log₂n+1
D. n

答案及解析:D
当输入序列是一个有序序列时,构造的二叉排序树是一个单支树,当查找一个不存在的关键字值或最后一个结点的关键字值时,需要n次比较。

2. 按()遍历二叉排序树得到的序列是一个有序序列。
A. 先序
B. 中序
C. 后序
D. 层次

答案及解析:B
由二叉排序树的定义不难得出中序遍历二叉树得到的序列是一个有序序列。

3.【2009统考真题】下列二叉排序树中,满足平衡二叉树定义的是()。 🏷️Img_Lec1902

答案及解析:B
根据平衡二叉树的定义有,任意结点的左、右子树高度差的绝对值不超过1。而其余3个答案均可以找到不满足条件的结点。

4. 具有5层结点的AVL至少有()个结点。
A. 10
B. 12
C. 15
D. 17

答案及解析:B
nin_i 表示高度为h的平衡二叉树中含有的最少结点数,则有 n1=1,n2=2,nh=nh1+nh2+1n_1 = 1, n_2 = 2,n_h = n_{h-1} + n_{h-2} + 1,由此求出 n3=4,n4=7,n5=12n_3 = 4, n_4 = 7, n_5 = 12,对应的AVL如右图所示。注意,因计算规则限制,结点最少的1-4层的平衡二叉树不能由如下图例给出。AVL🏷️Img_Lec1909


5.【2010统考真题】在下图所示的平衡二叉树中插入关键字48后得到一棵新平衡二叉树,在新平衡二叉树中,关键字37所在结点的左、右子结点中保存的关键字分别是()。 🏷️Img_Lec1903

A. 13, 48
B. 24, 48
C. 24, 53
D. 24, 90

答案及解析:C
插入48后,该二叉树根结点的平衡因子由-1变为-2,失去平衡,需进行两次旋转(先右旋后左旋)操作。 🏷️Img_Lec1903Ans


6. 下图所示是一棵()。 🏷️Img_Lec1912

A. 4 阶 B树
B. 4 阶 B+树
C. 3 阶 B树
D. 3 阶 B+树

答案及解析:A
关键字数量比子树数量少1,所以不是 B+树,而是B树。在B树中,关键字的数量最多为阶数m-1,因此该树是一棵4阶B树。

【课堂互动19.1】二叉排序树

1. 在二叉排序树中进行查找的效率与()有关。
A. 二叉排序树的深度
B. 二叉排序树的结点的个数
C. 被查找结点的度
D. 二叉排序树的存储结构

答案及解析:A
二叉排序树的查找路径是自顶向下的,其平均查找长度主要取决于树的高度。

2. 设二叉排序树中关键字由1到1000的整数构成,现要查找关键字为363的结点,下述关键字序列中,不可能是在二叉排序树上查找的序列是()。
A. 2, 252, 401, 398, 330, 344, 397, 363
B. 924, 220, 911, 244, 898, 258, 362, 363
C. 925, 202, 911, 240, 912, 245, 363
D. 2, 399, 387, 219, 266, 382, 381, 278, 363

答案及解析:C
使用二叉排序树进行查找时,先与根结点值进行比较,若相同,则查找结束,否则根据比较结果,沿着左子树或右子树向下继续查找。根据二叉排序树的定义,对于所有结点都存在,所有左子树的结点都小于根结点,所有右子树的结点都大于根结点。根据该原则,只有选C是错误的。为了便于查询,可依次绘出如下二叉排序树,不难发现在C图中,912小于结点911。🏷️Img_Lec1920


3.【2018统考真题】已知二叉排序树如下图所示,元素之间应满足的大小关系是()。 🏷️Img_Lec1904

A. x1 < x2 < x5
B. x1 < x4 < x5
C. x3 < x5 < x4
D. x4 < x3 < x5

答案及解析:.C
根据二叉排序树的特性:中序遍历(LNR)得到的是一个递增序列。图中二叉排序树的中序遍历序列为 x1, x3, x5, x4, x2,可知只有选项C满足。
另一解法,在二叉排序树中,左子树始终小于根结点,右子树始终大于根结点。

4.【2011统考真题】对下列关键字序列,不可能构成某二叉排序树中一条查找路径的是()。
A. 95, 22, 91, 24, 94, 71
B. 92, 20, 91, 34, 88, 35
C. 21, 89, 77, 29, 36, 38
D. 12, 25, 71, 68, 33, 34

答案及解析:A
在使用二叉排序树进行查询时,生成的查找路径应按照树的层进行遍历,即每次查找的结点都比上一论深度+1。在本题的四个选项中,选项A在查找到91后,再查找24,接下来再查找94,这三个关键字之间不构成一条查找路径,因此选项A错误。🏷️Img_Lec1922


5. 【2020 统考真题】下列给定的关键字输入序列中,不能生成右边二叉排序树的是()。 🏷️Img_Lec1905

A. 4, 5, 2, 1, 3
B. 4, 5, 1, 2, 3
C. 4, 2, 5, 3, 1
D. 4, 2, 1, 3, 5

答案及解析:B
对每个选项都根据二叉排序树的构造方法进行验证,可知选项ACD所构造的树都和题干给定的一致。选项B生成生成二叉排序树的过程如下:🏷️Img_Lec1919

显然选项B错误。

【课堂互动19.2】平衡二叉树

1.【2012统考真题】若平衡二叉树的高度为6,且所有非叶结点的平衡因子均为1,则该平衡二叉树的结点总数为()。
A. 12
B. 20
C. 32
D. 33

答案及解析:B
所有非叶结点的平衡因子均为1,即平衡二叉树满足平衡的最少结点情况,如下图所示。对于高度为n、左右子树的高度分别为 n-1 和 n-2,所有非叶结点的平衡因子均为1 的平衡二叉树,计算总结点数的公式为 nh=nh1+nn2+1,n1=1,n2=2,n3=2+1+1=4n_h = n_{h-1} + n_{n-2} + 1, n_1 = 1, n_2 = 2, n_3 = 2 + 1 + 1 = 4,可推出 n6=20n_6= 20
🏷️Img_Lec1910

画图法:先画出T1和T2;然后新建一个根结点,连接T2、T1构成T3;新建一个根结点,连接 T3、T2 构成T4......直到画出T6,可知T6的结点数为20。

排除法:对于A, 高度为6、结点数为12的树怎么也无法达到平衡。对于C,结点较多时,考虑较极端的情形,即第6层只有最左叶子的完全二叉树刚好有32个结点,虽然满足平衡的条件,但显然再删去部分结点依然不影响平衡,不是最少结点的情况。同理选项D错误。只能选择选项B。

2. 含有20个结点的平衡二叉树的最大深度为 ()。
A. 4
B. 5
C. 6
D. 7

答案及解析:C
平衡二叉树结点数的递推公式为 n0=0,n1=1,n2=2,nh=nh1+nh2+1n_0 = 0, n_1 = 1, n_2 = 2, n_h = n_{h-1} + n_{h-2} + 1 (h为平衡二叉树高度,nhn_h 为构造此高度的平衡二叉树所需的最少结点数)。通过递推公式可得,构造5层平衡二叉树至少需12个结点,构造6层至少需要20个结点。

3.【2013统考真题】若将关键字1, 2, 3, 4, 5, 6, 7依次插入初始为空的平衡二叉树T,则T中平衡因子为0的分支结点的个数是()。
A. 0
B. 1
C. 2
D. 3

答案及解析:D
利用7个关键字构建平衡二叉树T,平衡因子为0的分支结点个数为3,构建的平衡二叉树及构造与调整过程如下图所示。
🏷️Img_Lec1911


4.【2021统考真题】给定平衡二叉树如下图所示,插入关键字23后,根中的关键字是()。 🏷️Img_Lec1906

A. 16
B. 20
C. 23
D. 25

答案及解析:D
关键字23的插入位置为25的左孩子,此时破坏了平衡的性质,需要对平衡二叉树进行调整,过程如下。 🏷️Img_Lec1906Ans


【课堂互动19.3】红黑树

1. 下列关于红黑树的说法中,不正确的是()。
A. 一棵含有 n 个结点的红黑树的高度至多为 2log2(n+1)2log_2 (n+1)
B. 如果一个结点是红色的,则它的父结点和孩子结点都是黑色的
C. 从一个结点到其叶结点的所有简单路径上包含相同数量的黑结点
D. 红黑树的查询效率一般要优于含有相同结点数的AVL树

答案及解析:D
选项A 、B 和 C 都是红黑树的性质。AVL 是高度平衡的二叉查找树,红黑树是适度平衡的二叉查找树,从这一点也可以看出 AVL的查询效率往往更优。

2. 下列关于红黑树和AVL树的描述中,不正确的是()。
A. 两者都属于自平衡的二叉树
B. 两者查找、插入、删除的时间复杂度都相同
C. 红黑树插入和删除过程至多有2次旋转操作
D. 红黑树的任意一个结点的左右子树高度(含叶结点)之比不超过2

答案及解析:C
自平衡的二叉排序树是指在插入和删除时能自动调整以保持其所定义的平衡性,红黑树和AVL 都属于自平衡二叉树,选项A正确。在红黑树中删除结点时,其时间复杂度为 O(log2n)O(log_2 n),与AVL一致,选项B正确。在比较深的树中执行插入和删除时,可能会导致上面的树失去平衡,此时需要调整的次数时不定的,有可能旋转次数超过2次,选项 C 错误。选项D是红黑树的基本性质。

3. 下列关于红黑树的说法中,正确的是()。
A. 红黑树是一棵平衡二叉树
B. 如果红黑树的所有结点都是黑色的,那么它一定是一棵满二叉树
C. 红黑树的任何一个分支结点都有两个非空孩子结点
D. 红黑树的子树也一定是红黑树

答案及解析:B
红黑树是一种特殊的二叉排序树,平衡二叉树的左右子树的高度差小于或等于1,红黑树显然不满足,选项 A 错误。从根结点出发到所有叶结点的黑结点数是相同的,若所有结点都是黑色,则一定是满二叉树,选项 B 正确。考虑某个黑结点,它可以有一个空叶结点孩子和一个非空红结点孩子,选项 C 错误。红黑树中可能存在红结点,因此,以红结点为根结点的子树不是红黑树,选项 D 错误。

4. 将关键字1, 2, 3, 4, 5, 6, 7依次插入初始为空的红黑树T,则 T 中红结点的个数是()。
A. 1
B. 2
C. 3
D. 4

答案及解析:C
关键字1, 2, 3, 4, 5, 6, 7依次插入红黑树后的形态变化如下:🏷️Img_Lec1907


5. 将关键字5, 4, 3, 2, 1依次插入初始为空的红黑树T,则 T 的最终形态是()。 🏷️Img_Lec1901

答案及解析:D
关键字5, 4, 3, 2, 1依次插入红黑树后的形态变化如下:🏷️Img_Lec1901Ans


【课堂互动19.4】B树和B+树

1. 【2009统考真题】下列叙述中,不符合 m 阶 B 树定义要求的是()。
A. 根结点至多有m 棵子树
B. 所有叶结点都在同一层上
C. 各结点内关键字均升序或降序排列
D. 叶结点之间通过指针链接

答案及解析:D
m 阶 B 树不要求将各叶结点之间用指针链接。选项 D 描述的实际上是 B+ 树。

2. 高度为5的3阶B树至少有()个结点。
A. 32
B. 31
C. 120
D. 121

答案及解析:B
由 m 阶 B 树的性质可知,除根结点至少有2棵子树外,其他非叶结点至少有 m/2\lceil m/2 \rceil 棵子树。结点数最少时,3阶B树的分支树最多为 m/2=3/2=2\lceil m/2 \rceil = \lceil 3/2 \rceil = 2,其形态类似一棵满二叉树,即高度为5的B树至少有 251=312^5 - 1 = 31 个结点。当结点最多时,3阶B树的分支树为3,其形态类似于满三叉树,结点数为 (351)/2=121(3^5-1)/2 = 121

3. 已知一棵3阶B树中有2047个关键字,则此B树的最大高度为()。
A. 11
B. 10
C. 8
D. 7

答案及解析:A
由 m 阶 B 树的性质可知,除根结点至少有2棵子树外,其他非叶结点至少有 m/2\lceil m/2 \rceil 棵子树,至多m棵子树。由此可得,当结点数一定时,最小高度 hlogm(n+1)h \geq log_m (n+1) 和最大高度 Hlogm/2((n+1)/2)+1H \leq log_{\lceil m/2 \rceil} ((n+1)/2) + 1。易算出最大高度 Hlog2((2047+1)/2)+1=11H \leq log_2 ((2047+1)/2) + 1 = 11,最小高度 hlog32048=6.9h \geq log_3 2048 = 6.9,从而最小高度取7。

4.【2012统考真题】已知一棵3阶B树,如下图所示。删除关键字78得到一棵新 B树,其最右叶结点中的关键字是()。 🏷️Img_Lec1913

A. 60
B. 60, 62
C. 62, 65
D. 65

答案及解析:D
对于图中所示的3阶B树,被删关键字78所在的结点在删除前的关键字个数 =1=3/21=1=\lceil 3/2 \rceil -1,且其左兄弟结点的关键字个数 =23/2= 2 \geq \lceil 3/2 \rceil,属于“兄弟够借”的情况,因此要把该结点的左兄弟结点中的最大关键字上移到双亲结点中,同时把双亲结点中大于上移关键字的关键字下移到要删除关键字的结点中,这样就达到了新的平衡,如下图所示。🏷️Img_Lec1913B


5. 【2013统考真题】在一棵高度为2的5阶B树中,所含关键字的个数至少是()。
A. 5
B. 7
C. 8
D. 14

答案及解析:A
对于5阶B树,根结点的分支数最少为2,关键字数最少为1,其他非叶结点的分支数最少为 n/2=3\lceil n/2 \rceil = 3,关键字数最少为 m/21=2\lceil m/2 \rceil - 1 = 2。高度为2的5阶B树种,关键字的总数至少是1+2×2=5个。图🏷️Img_Lec1916给出了该树,注意不包含叶子结点。


6.【2020统考真题】依次将关键字5, 6, 9, 13, 8, 2, 12, 15插入初始为空的4阶B树后,根结点中包含的关键字是()。
A. 8
B. 6, 9
C. 8, 13
D. 9, 12

答案及解析:B
一个4阶B树的任意非叶结点至多含有 m - 1 = 3 个关键字,在关键字依次插入的过程中,会导致结点的不断分裂,插入过程如下所示。🏷️Img_Lec1917

得到根结点包含的关键字为6,9。

7.【2022统考真题】在下图所示的5阶B树T中,删除关键字260之后需要进行必要的调整,得到新的B树T1。下列选项中,不可能是T1根结点中关键字序列的是()。 🏷️Img_Lec1917

A. 60, 90, 280
B. 60, 90, 350
C. 60, 85, 110, 350
D. 60, 90, 110, 350

答案及解析:D
在5阶B树中,除根结点外的非叶结点的关键字数k需要满足 2≤k≤4。当被删关键字x不在终端结点(最底层非叶结点)时,可以用x的前驱(或后继)关键字v来替代x,然后在相应结点中删除v。此题,有如下三种情况:

【扩展练习19】

1. 对于二叉排序树,下面的说法中,()是正确的。
A. 二叉排序树是动态树表,查找失败时插入新结点,会引起树的重新分裂和组合
B. 对二叉排序树进行层序遍历可得到有序序列
C. 用逐点插入法构造二叉排序树,若先后插入的关键字有序,二叉排序树的深度最大
D. 在二叉排序树中进行查找,关键字的比较次数不超过结点数的1/2

答案及解析:C
二叉排序树插入新结点时不会引起树的分裂组合。对二叉排序树进行中序遍历可得到有序序列。当插入的关键字有序时,二叉排序树会形成一个长链,此时深度最大。在此种情况下进行查找,有可能需要比较每个结点的关键字,超过总结点数的1/2。

2. 在常用的描述二叉排序树的存储结构中,关键字值最大的结点()。
A. 左指针一定为空
B. 右指针一定为空
C. 左右指针均为空
D. 左右指针均不为空

答案及解析:B
在二叉排序树的存储结构中,每个结点由三部分构成,其中左(或右)指针指向比该结点的关键字值小(或大)的结点。关键字值最大的结点位于二叉排序树的最右位置,因此它的右指针 一定为空(有可能不是叶结点)。还可用反证法,若右指针不为空,则右指针上的关键字肯定比原关键字大,所以原关键字结点一定不是值最大的,与条件矛盾,所以右指针一定为空。

3. 从空树开始,依次插入元素52, 26, 14, 32, 71, 60, 93, 58, 24和41后构成了一棵二叉排序树。在该树查找60要进行比较的次数为()。
A. 3
B. 4
C. 5
D. 6

答案及解析:A
以第一个元素为根结点,依次将元素插入树,生成的二叉排序树如图所示。进行查找时,先与根结点比较,然后根据比较结果,继续在左子树或右子树上进行查找。比较的结点依次为52, 71, 60。🏷️Img_Lec1908


4. 构造一棵具有 n 个结点的二叉排序树时,最理想情况下的深度为()。
A. n/2
B. n
C. log2(n+1)\lfloor log_2 (n+1) \rfloor
D. log2(n+1)\lceil log_2 (n+1) \rceil

答案及解析:D
当二叉排序树所有节点都集中在最下面两层时,具有最理想的深度,此时棵类别一棵完全二叉树,可得深度为log2(n+1)\lceil log_2 (n+1) \rceil

5. 以下关于 m 阶B树的说法中,正确的是()。
Ⅰ. 每个结点至少有两棵非空子树
Ⅱ. 树中每个结点至多有m-1个关键字
Ⅲ. 所有叶结点在同一层
Ⅳ. 插入一个元素引起B 树结点分裂后,树长高一层

A. Ⅰ、Ⅱ
B. Ⅱ、Ⅲ
C. Ⅲ、Ⅳ
D. Ⅰ、Ⅱ、Ⅳ

答案及解析:B
每个非根的结点必须至少有 m/2\lceil m/2 \rceil 棵子树,只有根结点至少要有两棵子树,所以选项I不正确。选项Ⅱ、Ⅲ显然正确。对于IV,插入一个元素引起B树结点分裂后,只要从根结点到该元素插入位置的路径上至少有一个结点未满,B树就不会长高,如图1所示;只有当结点的分裂传到根结点,并使根结点也分裂时,才会导致树高增1,如图2所示,因此选项 IV 错误 。
🏷️Img_Lec1915A

图1 结点分裂不导致树高增1(3阶B树)

🏷️Img_Lec1915B

图2 结点分裂导致树高增1(3阶B树)

6. 在一棵 m 阶 B树中做插入操作前,若一个结点中的关键字个数等于(),则插入操作后必须分裂成两个结点;在一棵 m 阶 B 树中做删除操作前,若一个结点中的关键字个数等于(),则删除操作后可能需要同它的左兄弟或右兄弟结点合并成一个结点。
A. m,m/22m, \lceil m/2 \rceil - 2
B. m1,m/21m-1, \lceil m/2 \rceil - 1
C. m+1,m/2m+1, \lceil m/2 \rceil
D. m/2,m/2+1m/2, \lceil m/2 \rceil + 1

答案及解析:B
由于B 树每个结点内的关键字个数最多为 m-1,所以当关键字个数大于m-1 时,则应该分裂。每个结点内的关键字个数至少为 m/21\lceil m/2 \rceil - 1 个,所以当关键字个数少于 m/2\lceil m/2 \rceil -1 时,则可能与其他结点合并(除非只有根结点)。若将本题题干改为 B+ 树,请思考上述问题的解答。

7. 具有 n 个关键字的 m 阶 B树,应有()个叶结点。
A. n + 1
B. n - 1
C. mn
D. nm/2

答案及解析:A
B 树的叶结点对应查找失败的情况,对有 n 个关键字的查找集合进行查找,失败可能性有n+1种。

8. 高度为5的3阶B树至多有()个结点。
A. 32
B. 31
C. 120
D. 121

答案及解析:D
由 m 阶 B 树的性质可知,除根结点至少有2棵子树外,其他非叶结点至少有 m/2\lceil m/2 \rceil 棵子树。结点数最少时,3阶B树的分支树最多为 m/2=3/2=2\lceil m/2 \rceil = \lceil 3/2 \rceil = 2,其形态类似一棵满二叉树,即高度为5的B树至少有 251=312^5 - 1 = 31 个结点。当结点最多时,3阶B树的分支树为3,其形态类似于满三叉树,结点数为 (351)/2=121(3^5-1)/2 = 121

9. 含有 n 个非叶结点的 m 阶 B 树中至少包含()个关键字。
A. n(m+1)n(m+1)
B. nn
C. n(m/21)n(\lceil m/2 \rceil - 1)
D. (n1)(m/21)+1(n-1)(\lceil m/2 \rceil - 1) + 1

答案及解析:D
除根结点外,m 阶 B 树中的每个非叶结点至少有 m/21\lceil m/2 \rceil-1 个关键字,根结点至少有一个关键字,所以总共包含的关键字最少个数=(n1)(m/21)+1=(n-1)(\lceil m/2 \rceil-1)+1

10. 已知 一 棵5阶B 树中共有53个关键字,则树的最大高度为()。
A. 2
B. 3
C. 4
D. 5

答案及解析:C
5 阶B 树中共有53个关键字,其子树最多为m=5棵,最少为m/2=3\lceil m/2 \rceil = 3棵,分别可以类比为一棵完全三叉树和完全叉树。此外,由最大高度公式 Hlogm/2((n+1)/2)+1H \leq log_{\lceil m/2 \rceil} ((n+1)/2) + 1 得最大高度 Hlog3[((53+1)/2)+1=4H \leq log_3 [((53+1)/2) + 1 = 4 即最大高度为4;由最小高度公式 hlogm(n+1)h \geq log_m (n+1) 得最小高度 hlog5542.5h \geq log_5 54 ≈ 2.5,从而最小高度为3。

11. 已知一棵5阶B树中共有53个关键字,则树的最小高度为()。
A. 2
B. 3
C. 4
D. 5

答案及解析:B
5 阶B 树中共有53个关键字,其子树最多为m=5棵,最少为m/2=3\lceil m/2 \rceil = 3棵,分别可以类比为一棵完全三叉树和完全叉树。此外,由最大高度公式 Hlogm/2((n+1)/2)+1H \leq log_{\lceil m/2 \rceil} ((n+1)/2) + 1 得最大高度 Hlog3[((53+1)/2)+1=4H \leq log_3 [((53+1)/2) + 1 = 4 即最大高度为4;由最小高度公式 hlogm(n+1)h \geq log_m (n+1) 得最小高度 hlog5542.5h \geq log_5 54 ≈ 2.5,从而最小高度为3。

12 .下列关于B树和B+树的叙述中,不正确的是()。
A. B 树和 B+ 树都能有效地支持顺序查找
B. B 树和 B+ 树都能有效地支持随机查找
C. B 树和 B+ 树都是平衡的多叉树
D. B 树和 B+ 树都可以用于文件索引结构

答案及解析:A
B树和 B+树的差异主要体现在:1. 结点关键字和子树的个数;2. B+树非叶结点仅起索引作用;3. B树叶结点关键字和其他结点包含的关键字是不重复的;4. B+树支持顺序查找和随机查找,而B树仅支持随机查找。由于B+树的所有叶结点中包含了全部的关键字信息,且叶结点本身依关键字从小到大顺序链接,因此可以进行顺序查找,而B树不支持顺序查找。

13. 【2021统考真题】在一棵高度为3的3阶B 树中,根为第1层,若第2层中有4个关键字,则该树的结点数最多是()。
A. 11
B. 10
C. 9
D. 8

答案及解析:A
在阶为3的B树中,每个结点至多含有2个关键字(至少1个),至多有3棵子树。本题规定第二层有4个关键字,欲使B树的结点数达到最多,则这4个关键字包含在3个结点中,B树树形如下图所示,其中 A, B, C,..., M 表示关键字,最多有11个结点,故选A。🏷️Img_Lec1918



14.【2014统考真题】在一棵有15个关键字的4阶B树中,含关键字的结点个数最多是()。
A. 5
B. 6
C. 10
D. 15

答案及解析:D
关键字数量不变,要求结点数量最多,即要求每个结点中含关键字的数量最少。根据4阶 B树的定义,根结点最少含1个关键字,非根结点中最少含4/21=1\lceil 4/2 \rceil - 1 = 1个关键字,所以每个结占中关键字数量最少都为1个,即每个结点都有2个分支,类似于排序二叉树,而15个结点正好可以构造一个4层的4阶 B树,使得终端结点全在第四层,符合 B树的定义,因此选 D。

15. 【2016统考真题】B+树不同于B树的特点之一是()。
A. 能支持顺序查找
B. 结点中含有关键字
C. 根结点至少有两个分支
D. 所有叶结点都在同一层上

答案及解析:A
由于 B+ 树的所有叶结点中包含了全部的关键字信息,且叶结点本身依关键字从小到大顺序链接,因此可以进行顺序查找,而 B 树不支持顺序查找(只支持多路查找)。

16.【2017统考真题】下列应用中,适合使用 B+ 树的是()。
A. 编译器中的词法分析
B. 关系数据库系统中的索引
C. 网络中的路由表快速查找
D. 操作系统的磁盘空闲块管理

答案及解析:B
B+ 树是应文件系统所需而产生的B树的变形,前者比后者更加适用于实际应用中的操作系 统的文件索引和数据库索引,因为前者的磁盘读写代价更低,查询效率更加稳定。编译器中的词法分析使用有穷自动机和语法树。网络中的路由表快速查找主要靠高速缓存、路由表压缩技术和快速查找算法。系统一般使用空闲空间链表管理磁盘空闲块。所以选项B正确 。

17.【2018统考真题】高度为5的3阶B树含有的关键字个数至少是()。
A. 15
B. 31
C. 62
D. 242

答案及解析:B
m 阶 B 树的基本性质:根结点以外的非叶结点最少含有 m/21\lceil m/2 \rceil - 1 个关键字,代入 m=3 得到每个非叶结点中最少包含1个关键字,而根结点含有1个关键字,因此所有非叶结点都有两个孩子。此时其树形与 h = 5 的满二叉树相同,可求得关键字最少为31个。

18. 已知一棵3阶B树中有2047个关键字,则此B树的最小高度为()。
A. 11
B. 10
C. 8
D. 7

答案及解析:D
利用前面的公式即最小高度 hlogm(n+1)h \geq log_m (n+1) 和最大高度 Hlogm/2((n+1)/2)+1H \leq log_{\lceil m/2 \rceil} ((n+1)/2) + 1,易算出最大高度 Hlog2[((2047+1)/2)+1=11H \leq log_2 [((2047+1)/2) + 1 = 11,最小高度 hlog32048=6.9h \geq log_3 2048 = 6.9,从而最小高度取7(注意,有些 辅导书针对本题算出的高度要比这里给出的答案多1,因为它们在对B 树的高度定义中,把最底层不包含任何关键字的叶结点也算进去了)。

19.【2013统考真题】在任意一棵非空二叉排序树T1中,删除某结点v之后形成二叉排序树T2,再将v插入T2形成二叉排序树T3。下列关于T1与T3的叙述中,正确的是()。
Ⅰ. 若 v 是 T1 的叶结点,则 T1 与 T3 不同
Ⅱ. 若 v 是 T1 的叶结点,则 T1 与 T3 相同
Ⅲ. 若 v 不是T1 的叶结点,则 T1 与 T3 不同
Ⅳ. 若 v 不是T1 的叶结点,则 T1 与 T3 相同

A. 仅Ⅰ、Ⅲ
B. 仅Ⅰ、Ⅳ
C. 仅Ⅱ、Ⅲ
D. 仅Ⅱ、Ⅳ

答案及解析:C
在一棵二叉排序树中删除一个结点后,再将此结点插入二叉排序树,如果删除的是叶结点, 则插入结点后的二叉排序树与删除结点之前的相同。如果删除的不是叶结点,则插入结点后的二叉排序树会发生变化,与删除结点之前的不相同。

20. 分别以下列序列构造二叉排序树,与用其他3个序列所构造的结果不同的是()。
A. (100, 80, 90, 60, 120, 110, 130)
B. (100, 120, 110, 130, 80, 60, 90)
C. (100, 60, 80, 90, 120, 110, 130)
D. (100, 80, 60, 90, 120, 130, 110)

答案及解析:C
按照二叉排序树的构造方法,不难得到A,B,D所构造的二叉排序树如下左图所示,序列C所构造的二叉排序树如下右图所示。🏷️Img_Lec1921


21【2015统考真题】现有一棵无重复关键字的平衡二叉树(AVL),对其进行中序遍历可得到一个降序序列。下列关于该平衡二叉树的叙述中,正确的是()。
A. 根结点的度一定为2
B. 树中最小元素一定是叶结点
C. 最后插入的元素一定是叶结点
D. 树中最大元素一定是无左子树

答案及解析:D
大多数教材将平衡二叉树定义为一种高度平衡的二叉排序树,二叉排序树的中序序列是一个升序序列,而题意正好相反。由此可知,命题老师认为平衡二叉树仅为一棵满足高度平衡的二叉树,不一定是二叉排序树。当AVL只有2个结点时,根结点的度数为1,选项A错误。中序遍历后得到一个降序序列(与二叉排序树正好相反),树中最大元素一定无左孩子(可能有右子树), 这与二叉排序树也正好相反,选项D正确;此时结点也因此不一定是叶结点,选项B错误。选项C,最后插入的结点可能会导致平衡调整,而不一定是叶结点,选项C错误。

22.【2019统考真题】在任意一棵非空平衡二叉树(AVL树)T1中,删除某结点v之后形成平衡二叉树T2,再将v插入T2形成平衡二叉树T3。下列关于T1与T3的叙述中,正确的是()。
Ⅰ. 若 v 是T1的叶结点,则 T1 与 T3 可能不相同
Ⅱ. 若 v 不是T1的叶结点,则 T1 与 T3 一定不相同
Ⅲ. 若 v 不是T1的叶结点,则 T1 与 T3 一定相同

A. 仅Ⅰ
B. 仅Ⅱ
C. 仅Ⅰ、Ⅱ
D. 仅Ⅰ、Ⅲ

答案及解析:A

23. 下列关于 m 阶 B 树的说法中,错误的是()。
A. 根结点至多有 m 棵子树
B. 所有叶结点都在同一层次上
C. 非叶结点至少有 m/2(为偶数)或 (m+1)/2(m为奇数)棵子树
D. 根结点中的数据是有序的

答案及解析:C
选项ABD都是m阶B树的定义;选项C,除根结点外的所有非叶结点至少有 m/2\lceil m/2 \rceil 棵子树,此题少了对根结点的描述。对于根结点,若根不是叶子结点,则至少有2棵子树,至多不超过m棵子树。

第19讲 树表的查找 课堂互动 隐藏答案 | 返回首页