校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 >
题目

如果进栈序列为e1,e2,e3,e4,则不可能的出栈序列是( )

A.e2,e4,e3,e1

B.e4,e3,e2,e1

C.e1,e2,e3,e4

D.e3,e1,e4,e2

解答

正确答案是 D

如果e3第一个出栈,拿下一个应该是e4或者e2,但绝不可能是e1

C 4条回复 评论
coderpwh

怎么没能早点看到你这篇文章呢

发表于 2023-06-01 23:00:00
0 0
小可爱

正常出栈序列是后入先出,实际上只要是作为最后一个入栈元素就可以立即出栈。

不可能的出栈序列是栈中底层先入元素像出栈,但该元素上有其他元素尚未出栈。所以对于n个元素,a1, a2, ... an先后依次入栈,不可能的出栈序列是该序列中存在三个元素 ai, aj, ak (i < j < k),出栈顺序为 ak, ... ai... aj。因为当 ai 之后入栈的 ak 出栈后,ai 出栈,这意味着 ai 与 ak 之间的元素都出栈了,所以位于两者之间的元素 aj 早已出栈,不可能在 ai 后再次出栈。

本题D项的e3, e1, e2 为不可能出栈序列。

发表于 2018-10-13 13:52:02
0 0
站桩灵

不用一个个验证,用这个技巧,任何三个元素i,j,k如果栈混洗后为k,i,j则不为可能出现的栈序列。其中i,j,k可为相对的顺序,不一定是紧邻的。
比如这里看e1,e2,e3三个元素,最后一个选项的结果是e3,e1...e2这样的相对顺序,则不可能出现。

发表于 2018-10-13 13:51:26
0 0
浅色回忆

A. e1进,e2进,e2出,e3进,e4进,e4出,e3出,e1出
C.e1进,e1出,e2进,e2出,e3进,e3出,e4进,e4出

发表于 2018-10-13 13:51:12
0 0