【练习】入栈出栈规则

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/feit2417/article/details/81086032

问:已知元素的入栈顺序为abcde,则下列哪种出栈顺序是不可能的(出栈和入栈操作可交叉进行)

A.edcba

B.cabde

C.dcbae

D.bcdea

 

 

思路一

分析:出栈和入栈操作可交叉进行,说明入栈操作并不一定是连续进行的。由于栈有后入先出的逻辑特点,所以对于该题有如下规律

出栈的第一个元素是在原来的次序中是第几个,那么他的前面的元素必然都还在栈中。

比如c先出栈,说明此时ba已经入栈且一定还在栈中

 

A选项:e先出栈,说明栈中存在元素 d-c-b-a 。正确!

B选项:c先出栈,栈中存在 b-a ,元素b距离栈顶比较近。错误

C选项:d先出栈,栈中存在 c-b-a,正确。

D选项:b先出栈,栈中存在 a,正确。

 

思路二

在元素入栈 的同时,分别对ABCD四个选项进行分析。比如,A选项分析

步骤 操作 栈中元素 出栈元素
1 压入a a  
2 压入b a, b  
3 压入c a, b, c  
4 压入d a, b, c, d  
5 压入e a, b, c, d, e e
6 弹出 a, b, c, d  
7 弹出 a, b, c d
8 弹出 a, b c
9 弹出 a b
10 弹出   a

 

 

展开阅读全文

没有更多推荐了,返回首页