Question 13
栈的出栈序列
给定空栈,依次入栈 1 2 3 4 5 6,下面哪种出栈顺序不可能出现?
单项选择2 分难度 中等
正确答案
D. 1 3 5 2 4 6
一句话考点
判断栈序列是否合法的关键是:当前要弹出的元素必须位于栈顶。
栈模拟
Prompt
题目与选项
给定空栈,依次入栈 1 2 3 4 5 6,下面哪种出栈顺序不可能出现?
A. 6 5 4 3 2 1
B. 1 6 5 4 3 2
C. 2 4 6 5 3 1
D. 1 3 5 2 4 6
Quick Check
做题抓手
先判断题型
先定位知识点,再决定是公式套用、手推样例还是结构重建。
再核对边界
第一轮很爱在闭区间、下标偏移、递归终止条件和布尔返回值上设陷阱。
最后看输出层次
尤其是阅读程序题,要分清函数返回值、变量值和最终打印值是不是同一件事。
Explanation
详细讲解
Step 1
A 是完全压满后再全部弹出,显然合法。B 可以先压 1 弹 1,再压到 6 后依次弹出 6 5 4 3 2,也合法。
Step 2
C 也能通过按需入栈模拟出来:先弹 2,再弹 4,再压到 6,最后依次弹 6、5、3、1。
Step 3
D 的问题在于:先弹 1、再弹 3、再弹 5 之后,栈顶会是 4,可下一个目标却是 2。由于 2 被 4 压住,不可能直接弹出,所以 D 不合法。
Pitfalls
易错点
- 只凭感觉看顺不顺眼,没有真正按“入栈/出栈”过程模拟。
- 忘记栈顶约束,觉得只要元素顺序差不多就行。
Extend
拓展补充
- 这类题最稳的做法是手动画栈,目标弹出谁,就持续入栈直到它在栈顶为止。
返回总览
回到整套试卷
返回题目总览页,继续从目录、知识图谱或其他分区进入。
所属分区
返回 单项选择
回到首页对应分区,继续顺序刷题或查看同类知识点。
上一题
第 12 题
前中序推后序
下一题
第 14 题
相邻限制的排列