如题图所示,在栈的输入端元素的输入顺序为A,5,8,试写出在栈的输出端可以得到的以数字开头的所有输出序列,并写出进栈、出栈的操作过程(用push(x)表示X进栈,pop(x)表示x出栈)。




【正确答案】:

共3种。

85A:PUSH(A),PUSH(5),PUSH(8),POP(8),POP(5),POP(A)。

58A:PUSH(A),PUSH(5),POP(5),PUSH(8),POP(8),POP(A)。

5A8:PUSH(A),PUSH(5),POP(5),POP(A),PUSH(8),POP(8)。




【题目解析】:

栈的修改原则是后进先出。注意:题干中“以数字开头的所有输出序列”,故

A进,5进,8进,8出,5出,A出,即输出序列:85A。

A进,5进,5出,8进,8出,A出,即输出序列:58A。

A进,5进,5出,A出,8进,8出,即输出序列:5A8。