题目
12.用 S 表示进栈操作,用 X 表示出栈操作,若元素的进栈顺序是 1234,为了得到 1342 的出栈顺序,相应的 S 和 X 的操作序列为______。A. SXSXSSXXB. SSSXXSXXC. SXSSXXSXD. SXSSXSXX
12.用 S 表示进栈操作,用 X 表示出栈操作,若元素的进栈顺序是 1234,为了得到 1342 的出栈顺序,相应的 S 和 X 的操作序列为______。
A. SXSXSSXX
B. SSSXXSXX
C. SXSSXXSX
D. SXSSXSXX
题目解答
答案
D. SXSSXSXX
解析
考查要点:本题主要考查栈的操作规则(先进后出)以及根据给定的进栈和出栈顺序,推导对应的操作序列的能力。
解题核心思路:
- 明确栈的特性:元素只能从栈顶进/出,因此出栈顺序必须遵循“先进后出”的规则。
- 按进栈顺序逐步模拟:根据题目给出的进栈顺序(1→2→3→4),结合目标出栈顺序(1→3→4→2),通过交替执行进栈(S)和出栈(X)操作,验证每一步是否符合要求。
- 关键点:需确保每次出栈操作时,栈顶元素与目标出栈顺序一致,同时进栈顺序不能被打乱。
目标出栈顺序:1 → 3 → 4 → 2
进栈顺序:1 → 2 → 3 → 4
操作步骤分解:
-
第一步:
- 进栈1(S),此时栈:[1]
- 立即出栈1(X),栈为空,得到第一个出栈元素1。
操作序列:SX
-
第二步:
- 进栈2(S),栈:[2]
- 进栈3(S),栈:[2, 3]
- 出栈3(X),栈:[2],得到第二个出栈元素3。
操作序列:SXSSX
-
第三步:
- 进栈4(S),栈:[2, 4]
- 出栈4(X),栈:[2],得到第三个出栈元素4。
操作序列:SXSSXSX
-
第四步:
- 出栈2(X),栈为空,得到第四个出栈元素2。
操作序列:SXSSXSXX
- 出栈2(X),栈为空,得到第四个出栈元素2。
最终操作序列:SXSSXSXX(选项D)