OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3379|回复: 1

两个栈实现队列 收藏防迷路

[复制链接]

143

主题

145

帖子

0

精华

高级会员

Rank: 4

积分
585
金钱
585
注册时间
2020-5-25
在线时间
42 小时
发表于 2020-11-18 16:38:14 | 显示全部楼层 |阅读模式
解决思路:
两个栈stack1和stack2 。
开始时,每次添加队尾元素到stack1中。
如果需要弹出队头元素,则将stack1中的元素弹出并push到stack2中,再将stack2的栈顶元素弹出,即为弹出了队头元素。
如果stack2中是非空的,再在队尾中添加元素的时候仍然加到stack1中,从stack2中弹出队头元素。
只有当stack2为空的时候,弹出队头元素才需要将stack1中的元素转移到stack2中。
[url=][/url]
public class MyQueue {    private Stack<Integer> pushQueue = new Stack<>();    private Stack<Integer> popQueue = new Stack<>();    public MyQueue() {    }    public void push(int num) {        pushQueue.push(num);    }    public int pop() {        if (pushQueue.isEmpty() && popQueue.isEmpty()) {            throw new RuntimeException("queue is empty!");        }        while (!pushQueue.isEmpty()) {            popQueue.push(pushQueue.pop());        }        return popQueue.pop();    }}[url=][/url]
[url=]欢迎一起讨论[/url]
[url=][/url]


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

269

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1053
金钱
1053
注册时间
2020-5-11
在线时间
253 小时
发表于 2020-11-18 16:42:16 | 显示全部楼层
哥们你为啥天天往这论坛里拷贝网上别的论坛的贴子。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 22:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表