Skip to content

2011年 408 数据结构 第 7 题

数据结构2011年选择题2分

题目

对于下列关键字序列,不可能构成某二叉排序树中一条查找路径的序列是( )。

错因

B

凭直觉觉得"91 比 92 略小,紧接 20 又跳到 91,再到 34,看着上下乱跳"就排除。但 BST 路径允许这种"震荡"——只要每步都落在祖先节点夹出的合法区间内即可。逐步验证:92 → 20(左,区间 (−∞, 92))→ 91 ∈ (20, 92) ✓ → 34 ∈ (20, 91) ✓ → 88 ∈ (34, 91) ✓ → 35 ∈ (34, 88) ✓,全部合法。

C

类似 B 的直觉错误:"21 → 89 → 77 → 29 → 36 → 38" 看着抖动太大。验证:21 → 89(右,(21, +∞))→ 77 ∈ (21, 89) ✓ → 29 ∈ (21, 77) ✓ → 36 ∈ (29, 77) ✓ → 38 ∈ (36, 77) ✓,合法。

D

类似的直觉问题。12 → 25 → 71 → 68 → 33 → 34:每步区间约束都满足(71 ∈ (12, +∞)、68 ∈ (25, 71)、33 ∈ (25, 68)、34 ∈ (33, 68)),是合法 BST 路径。

总解析

BST 查找路径的判定规则:把根节点初始范围视为 ,每走一步:

  • 左孩子 → 新范围为 (保持左下界,新右上界 = 当前值)
  • 右孩子 → 新范围为 (新左下界 = 当前值,保持右上界)

路径上每个节点必须落在前一步划出的合法区间内,否则该节点不可能存在于 BST 的对应位置。

逐项验证 A:95, 22, 91, 24, 94, 71

节点当前合法区间是否落入
195
222 走左
391 走右
424 走左
594 走右94 > 91

第 5 步出现矛盾:91 是 24 的祖先(24 在 91 左子树),所以 24 后续路径上的所有节点必 < 91。但 94 > 91,违反约束——这样的 BST 在结构上不可能存在。

B、C、D 同法验证均合法(详见错因部分的逐步推导)。

最终答案是 A

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数