用栈实现一个队列和用队列实现一个栈

用栈实现一个队列和用队列实现一个栈


我们都知道栈的特点是元素先进后出,队列的特点是元素先进先出。那如何用栈实现队列和用队列实现栈呢。

用栈实现队列

我们需要两个栈,一个数据栈,一个辅助栈。数据栈用来存放数据,辅助栈用来辅助实现模拟队列的操作。

当几个元素入栈,而现在想以队列的方式取数据,即取最先入栈的、现在在栈底的元素。这时辅助栈就派上用场了,首先我们将栈底元素上面的元素全部pop(),接着把它们push()进辅助栈。这时数据栈内只剩栈底元素,取出即为我们想要的,之后再把辅助栈中的元素重新pop()出并push()进数据栈即可。

用队列实现栈

同样的,我们需要两个队列,一个数据队列,一个辅助队列。数据队列负责存放元素,辅助队列用来辅助实现模拟栈的操作。

栈的特点是先进后出,因此应该让位于队列末尾的元素出队,但队列是先进先出的,所以必须把队列末尾元素前边的元素全部出队后,才能得到末尾元素。我们可以用辅助队列存放出队列的元素,在记录最后出队列的元素后,把辅助队列中的元素重新入数据队列即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值