按顺序入栈,出栈顺序的判断方法

       栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

     首先,学过数据结构我们了解到:栈的特点就是先进后出,我们可以把它想象成洗完盘子放盘子,一步一步压入,最后我们只能从最上面开始取已经洗好的盘子。

     在学习了一段时间后我就遇到了计算栈的出入顺序存在性的问题

即:按顺序压入a、b、c、d四个元素,问有没有按照c、d、a、b取出元素的方式,当然这只是其中的一个选项

亦或者类似于这种题目

即:按顺序压入a、b、c、d四个元素,问有没有按照c、d、a、b取出元素的方式,当然这只是其中的一个选项

  遇到这种题目起初我是一点点试的,后来发现一个好方法。我们可以这样思考,以上面这个题目为例:我们在取出c之前是一定会压入a和b的,且我们最先取出的是c这就说明我们还没有取出a和b,所以此时我们的栈内是这样的

 d我们可以直接压入在取出,不做解释,而后面的a、b我们就无法按照顺序正常出栈了,这就是问题所在,所以在这我们也可以简单总结一下。

如果最前面出栈的元素是后面压入的,那么提前压入的元素出栈的顺序就一定只能是压入元素顺序的逆序。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值