关于求栈容量问题(学习总结)

知识应用:
求栈的容量问题(从出队的顺序可以得到入栈和出栈的顺序)

首先,要知道出栈序列和入队序列相同(因为出栈后就入队),而入队序列和出队序列是相同的(因为队列是先进先出FIFO,也就是大白话说,ahd,入队,a先进a先出,所以入队顺序为ahd,出队顺序也为ahd),从而得到

(首先前提,出栈序列和入队序列相同)

出栈序列=入队序列
入队序列=出队序列
所以:出栈序列=出队序列!

(换句话说:从出队序列得出栈序列和入栈序列,很方便把!!因为栈FILO,)

题:
栈和队列,ABCDEF分别入栈,且出栈后就入队列,出队顺序为BDCFEA,问栈的容量至少为?

(分析:知道出队顺序BDCFEA所以出栈顺序BDCFEA,栈是先进后出(但是并不是简单的逆序出栈顺序而是!)

现在得出出栈顺序为BDCFEA
而入栈顺序已知是为ABCDEF

大白话上面什么意思:
首先需要入栈出栈同时考虑,按入栈顺序走,a入,b入,但是一看到b,想到出栈顺序b是第一个b一入b就得出相当于过了一下,所以顺序是a入b入b出,b出以后,优先考虑入,因为初始的时候栈是空的,相当于现在栈里只有a,要是考虑出的话让出什么,因为a的出栈顺序在最后,所以a肯定不能出,所以继续考虑入,

所以b出以后,让c入,, 第二个出栈的是d,c的出栈顺序在d后面,但是现在没有d,需要让d也入,然后再d出,c再出,所以这个时候相当于栈里面在d入的那一瞬间,栈里面是有三个元素,acd,然后看出栈顺序,d出,c出,现在栈里又只有a了,再看入栈,e入,同理,因为f在e之前出栈,但是f还没有入,需要f入,,也就是e入f入,f入的那一瞬间栈里又是有三个元素,aef,然后f出,e出,最后a出)

顺序;A 入-b入-b出-c入-d入-d出-c出-e入-f入-f出-e出-a出
入栈:a入-b入 -c入-d入- e入-f入
出栈: b出- d出-c出- f出-e出-a出

在某个瞬间的时候,栈里面容量是三个元素,acd或者aef,但是这个容量是至少的。

/*最后本文章由于查找栈容量问题,鉴于这位老哥的文章有感所写,具体链接如下,如有侵权,请联系
https://blog.csdn.net/qq_26222859/article/details/51325889?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%A6%82%E4%BD%95%E5%88%A4%E6%96%AD%E6%A0%88%E7%9A%84%E5%AE%B9%E9%87%8F&utm_medium=distribute.pc_search_result.none-task-blog-2blogsobaiduweb~default-0-51325889.pc_v2_rank_blog_default
*/

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值