栈与队列之间的互相转换

一、基本概念

1、栈stack:先进后出 FILO

2、队列queue:先进先出 FIFO

二、两个栈实现一个队列

 

1、入队:push到栈1

2、出队:

(1)若栈2为空,push到栈2,再从栈2 依次pop

(2)若栈2非空,先将栈2 数据依次pop,直到为空,再执行步骤(1)

三、两个队列实现一个栈

1、入栈:push数据 “abc” 到一个不为空的队列,若全为空,即均可

2、 出栈:

(1) 将队1数据(除了最后一个)“ab” push到队2(空)中,将队1中仅剩的一个数据 “c” pop出队,即实现后进先出 

 

(2)同理继续出栈, 将队2数据(除了最后一个)“a” push到队1(空)中,将队2中仅剩的一个数据 “b” pop出队 

 

3、有新数据入栈,push数据 “d” 到一个不为空的队列,队1d

4、出栈,同理, 将队1数据(除了最后一个)“a”  push到队2(空)中,将队1中仅剩的一个数据 “d” pop出队

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值