按( )遍历二叉排序树得到的序列是一个有序序列。
目标
通过 7 道 408 历年真题与 5 道王道习题,检查自己能否准确处理二叉排序树的定义、构造与查找路径。
完成后应能:
- 用中序有序性解释 BST 的排序能力,并推断最大/最小关键字结点的指针特征;
- 由插入序列构造 BST,并判断哪些序列能(或不能)生成给定树形;
- 用"上下界持续收紧"判别一条序列能否构成查找路径;
- 说明删除再插入对树形的影响,区分叶结点与非叶结点两种情形。
前置知识
建议先阅读 8.2 节 二叉排序树,掌握插入构造、三类删除与"查找路径 = 根到结点路径"的对应关系。
环境、输入与预期输出
- 环境:任意现代浏览器;图形题建议先在纸上重画树形再作答。
- 输入:本页 12 道单项选择题,题面中的树形用
1(2(_,3),4)式记法表示(括号内依次为左、右子树,_表示空指针)。 - 预期输出:一份独立作答记录,以及每道错题的错误原因和正确推理。
作答方法
- 阅读题面后点击一个选项,先写下选择依据;
- 点击"提交答案",再核对对错、正确答案和题解;
- 做错的题点击"重新作答"后再次推导,直到能说明其余选项为什么不成立;
- 完成全部题目后再使用页面末尾的答案总览复核,避免只记答案字母。
选择题
search-wd73-q04在常用的描述二叉排序树的存储结构中,关键字值最大的结点( )。
search-wd73-q06分别以下列序列构造二叉排序树,与其他 3 个序列所构造的结果不同的是( )。
search-wd73-q07从空树开始,依次插入元素 52, 26, 14, 32, 71, 60, 93, 58, 24, 41 后构成了一棵二叉排序树。在该树中查找 60 需要进行的比较次数为( )。
search-wd73-q09五个不同结点构成的二叉查找树的形态共有( )种。
search-wd73-q10构造一棵具有 n 个结点的二叉排序树时,最理想情况下的深度为( )。
search-408-2024-q07一棵二叉搜索树如题 7 图所示,k1、k2、k3 分别是对应结点中保存的关键字。子树 T 的任一结点中保存的关键字 x 满足的是( )。
k1(_, k2(k3(_, T), _))
结构(文字版):根为 k1(左子树省略),右孩子为 k2;k2 的左孩子为 k3、右子树省略;k3 的左子树省略,右子树即 T。
search-408-2020-q05下列给定的关键字输入序列中,不能生成如下二叉排序树的是( )。
4(2(1, 3), 5)
结构(文字版):根 4,左孩子 2(其左右孩子分别为 1、3),右孩子 5。
search-408-2018-q06已知二叉排序树如下图所示,元素之间应满足的大小关系是( )。
x1(_, x2(x3(_, x4(x5, _)), _))
结构(文字版):根 x1 只有右孩子 x2;x2 只有左孩子 x3;x3 只有右孩子 x4;x4 只有左孩子 x5。
search-wd73-q05设二叉排序树中关键字由 1 到 1000 的整数构成,现要查找关键字为 363 的结点。下述关键字序列中,不可能是二叉排序树上查找序列的是( )。
search-408-2011-q07对于下列关键字序列,不可能构成某二叉排序树中一条查找路径的序列是( )。
search-408-2013-q06在任意一棵非空二叉排序树 T1 中,删除某结点 v 之后形成二叉排序树 T2,再将 v 插入 T2 形成二叉排序树 T3。下列关于 T1 与 T3 的叙述中,正确的是( )。
I. 若 v 是 T1 的叶结点,则 T1 与 T3 不同
II. 若 v 是 T1 的叶结点,则 T1 与 T3 相同
III. 若 v 不是 T1 的叶结点,则 T1 与 T3 不同
IV. 若 v 不是 T1 的叶结点,则 T1 与 T3 相同
答案总览(建议完成全部题目后查看)
- 第 1 题:B
- 第 2 题:B
- 第 3 题:C
- 第 4 题:A
- 第 5 题:D
- 第 6 题:D
- 第 7 题:D
- 第 8 题:B
- 第 9 题:C
- 第 10 题:C
- 第 11 题:A
- 第 12 题:C
完成清单
思考题
- 为什么 BST 的中序遍历恰好得到升序序列?把"左 < 根 < 右"改成"左 > 根 > 右"会得到什么?
- 查找路径判别题中,"上下界收紧"和 BST 插入时的路径有什么对应关系?
- 删除双孩子结点时用中序后继填补,为什么重新插入后 v 必然变成叶结点?
复盘
- 我是否把"查找路径"当成任意合法的根到结点路径,而忽略了比较次序的约束?
- 图形题里我是否先重画树形、列出每条路径的不等式,再对照选项?
- 哪道题我靠"感觉像"作答,而没有落到上下界或逐项模拟?