CSP-J 入门级 · CSP 2021 入门级第一轮 第 5 题

选择题 · 答案 D · 考点:栈(stack)

← 整套速查表 CSP-J 入门级 全部真题

题目

对于入栈顺序为 $a, b, c, d, e$ 的序列,下列( )不是合法的出栈序列。

答案:D

考点

栈(stack) 讲解 →栈(stack) 真题汇总 →

解题思维

拿到这种栈的出栈序列题,别急着硬算,先想核心约束:出栈序列里,若出现'小数字在小数字后面'(比如c在a后面),那c和a之间所有还没出栈的数(b)必须已经出栈了。这道题就是看D选项里c、d、a的顺序是否违背了这个铁律。

常见错误

最容易栽跟头的就是盯着'D'选项前两个数c、d,觉得它们连续出栈很顺,就忽略了后面那个a。学生往往只验证了局部操作是否可行,没全局看栈里剩下的元素。还有就是把栈当成队列或者随便能插队的地方,忘了栈顶那个元素如果不先出来,底下的元素永远出不来。D选项里c出来后,d进又出,这时候栈里还压着b和a,b在a上面,想出a必须先出b,但题目里b在后面才出,这就是死结。

详细解析(节选)

考察知识点:栈(Stack) — 出栈序列合法性判断

概念定义: 栈是典型的"后进先出"(LIFO)结构,就像叠盘子,最后放上去的必须最先拿下来。入栈顺序一旦固定(本题是a,b,c,d,e),任何时刻能出栈的只有栈顶元素。这就导致了一个核心约束:在出栈序列中,对于任意两个出栈的数,如果较小的数先出,那么比它大且还没出栈的数,必须全部在它们之间出过,否则会被压在下面出不来。

命题视角: 命题人特别喜欢考这种"局部合法、全局非法"的陷阱。D选项前几步c、d连续出栈看起来很顺畅,容易让人放松警惕,但关键在于c出栈后,栈里还压着b和a(b在a上面)。接下来d入栈再出栈,此时栈顶是b,而题目要求下一个出a,这在物理上是不可能的——a被b压着,除非先出b。这种"中间挡着"的情况是栈题最经典的挖坑点。

思考心法: 拿到题,先别逐项模拟,而是找"冲突点"。比如看D选项:c在a前面出了,那c和a之间所有没出的数(b)必须已出。但D里b在a后面才出,矛盾!所以D一定错。如果没找到冲突,再拿模拟法验证:

避坑: 千万别只看前几个数就下结论,D选项的陷阱就在于它的前半段太顺了。还有,不要混淆"入栈顺序"和"出栈顺序",题目给的入栈顺序是固定的a到e,不是让你随便排。另外,模拟时注意栈的状态:每次出栈后,栈顶变了,下次能出的数也跟着变。

考频与趋势: 栈是题库高频考点,共考过89题,覆盖8个级别。从逐年分布看,2024年突然爆发25题,2025年15题,2026年9题,说明近年命题人明显加大了栈相关题目的比重,尤其是入门级和GESP六级这类基础但易错的内容。历年单选题中,栈的出栈序列合法性判断几乎年年都有,且常以"下列哪个不合法"的形式出现,D这种"局部顺全局卡"的选项是命题人的拿手好戏。

预测: 基于2024-2026年数据激增的趋势,未来两三年栈的题目数量仍会保持高位,尤其是GESP六级和CSP入门级。命题人可能会继续考出栈序列,但形式可能更隐蔽,比如给出部分出栈序列让判断剩余部分是否可行,或者结合多个栈操作(如双栈)考逻辑。暂无足够依据预测具体年份,但建议把栈的合法性判断作为必会题型。

综上,D选项违反栈的LIFO特性,是正确答案。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断