【练习】入栈出栈规则

举报
王建峰 发表于 2021/11/19 03:02:54 2021/11/19
【摘要】 问:已知元素的入栈顺序为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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。