Skip to content

2025年 408 数据结构 第 2 题

数据结构2025年选择题2分

题目

对于括号匹配问题,符号栈初始为空,容量为 3,下列表达式不能实现的是( )。

错因

A

最大嵌套出现在 (a+[b+(c+d):栈中先后压入 ([(,共 3 层,正好等于栈容量——刚刚好用满,但没有溢出。误以为"栈被装满"就一定失败的同学忘了:容量 3 意味着最多同时容纳 3 个左符号,等于这个数仍是合法的。

B

子串 [a*(( 一连出现 3 个左括号 [ ( (,看着深,但正好 3 层不超容量。后续 (d-e) 等只是先弹后压,深度不会再加深。

C

[a*(b-(c-d) 处栈中是 [ ( (,3 层;之后 (c-d) 弹完进入 (f+g) 时栈又变回 [ ( (。整个表达式的峰值嵌套深度始终 = 3,刚好不超。

总解析

思路:括号匹配时遇到左符号入栈、遇到右符号出栈匹配;扫描全过程中栈中元素数的峰值就是表达式的最大嵌套深度。栈容量 3 意味着峰值不能 > 3。

逐项追踪栈深变化(只看左右括号 / 方括号):

选项关键扫描位置峰值深度
A( [ ()]) 全部弹完3
B[ ( ()( )( )] 反复但未再叠加3
C[ ( ()( )] 来回但峰值 = 33
D[ ( [ ( 出现 4 层!4

D 的扫描细节[a-(b+[c*(d+e)

  • [ → 栈 [,深度 1
  • ( → 栈 [ (,深度 2
  • [ → 栈 [ ( [,深度 3(已用满)
  • ( → 栈 [ ( [ (,深度 4 → 入栈失败

栈容量已满还要再压入新左括号,匹配中断,无法完成。

最终答案是 D

最后更新:

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

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