【练习】入栈出栈规则
【摘要】
问:已知元素的入栈顺序为abcde,则下列哪种出栈顺序是不可能的(出栈和入栈操作可交叉进行)
A.edcba
B.cabde
C.dcbae
D.bcdea
思路一
分析:出栈和入栈操作可交叉进行,说明入栈操作并不一定是连续进行的。由于栈有后入先出的逻辑特点,所以对于该题有如下规律
出栈的第...
问:已知元素的入栈顺序为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 |
文章来源: blog.csdn.net,作者:hinzer,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/feit2417/article/details/81086032
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)