算法通关:014_1:用栈实现队列

文章目录

题目

用栈实现队列 leetcode :232

总结

时间复杂度

平均下来每个方式是O(1)

代码

java 复制代码
 class MyQueue {
        public Stack<Integer> in;
        public Stack<Integer> out;

        //初始化
        public MyQueue() {
            in = new Stack<>();
            out = new Stack<>();
        }

        //倒数据
        //从in栈 倒入 out栈
            //out栈为空才能倒数据
            //in栈有数据才能倒,且必须全部倒入out栈
        private void inToOut(){
            if(out.empty()){
                while(!in.empty()){//不是空就一直倒
                    out.push(in.pop());//从in里弹出的数据进入out
                }
            }
        }

        //加入数据
        public void push(int x){
            in.push(x);
            inToOut();//加入一个数据你看能不能倒数据,能就倒,不能就啥也不做
        }

        //弹出一个数
        public int pop(){
            inToOut();
            return out.pop();
        }

        //不弹出,返回队列头部
        public int peek(){
           inToOut();
           return out.peek();
        }
        //判空
        public boolean empty(){
            return in.isEmpty() && out.isEmpty();
        }

    }

运行结果

相关推荐
wxy3198 分钟前
嵌入式LINUX——————TCP并发服务器
java·linux·网络
你也向往长安城吗26 分钟前
推荐一个三维导航库:three-pathfinding-3d
javascript·算法
★YUI★29 分钟前
学习游戏制作记录(玩家掉落系统,删除物品功能和独特物品)8.17
java·学习·游戏·unity·c#
微小的xx32 分钟前
java + html 图片点击文字验证码
java·python·html
大王派来巡山的小旋风39 分钟前
Kotlin基本用法之集合(一)
android·程序员·kotlin
用户20187928316742 分钟前
智能广播系统(RemoteCallbackList)的诞生
android
百度智能云42 分钟前
VectorDB+FastGPT一站式构建:智能知识库与企业级对话系统实战
算法
mask哥1 小时前
详解flink java基础(一)
java·大数据·微服务·flink·实时计算·领域驱动
克拉克盖博1 小时前
chapter03_Bean的实例化与策略模式
java·spring·策略模式
DashVector1 小时前
如何通过Java SDK分组检索Doc
java·数据库·面试