设A、B、C、D、E五个元素依次进栈(进栈后可立即出栈),问能否得到下列序列:(1)A, B, C, D, E;(2)A,C, E, B, D
若能得到,刚给出该序列的操作过程(用push(A)表示A进栈,pop(A)表示A出栈);若不能,则说明理由。

设A、B、C、D、E五个元素依次进栈(进栈后可立即出栈),问能否得到下列序列:(1)A, B, C, D, E;(2)A,C, E, B, D
若能得到,刚给出该序列的操作过程(用push(A)表示A进栈,pop(A)表示A出栈);若不能,则说明理由。


【正确答案】:

(1)能,操作过程为:PUSH(A),POP(A),PUSH(B),POP(B),PUSH(C),POP(C),PUSH(D),POP(D),PUSH(E),POP(E)

(2)不能,不能的理由:对序列(2)中的E,B,D而言,E最先出栈,此时B和D均在栈中,由于B先于D进栈,所以应有D先出栈


【题目解析】:

(1)能,操作过程为:push(A),pop(A),push(B),pop(B),push(C),pop(C),push(D),pop(D),push(E),pop(E)
(2)不能,不能的理由:对序列(2)中的E,B,D而言,E最先出栈,此时B和D均在栈中,由于B先于D进栈,所以应有D先出栈


Top