算法通关: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();
        }

    }

运行结果

相关推荐
Yolo_TvT几秒前
C++:缺省参数
开发语言·c++·算法
云烟成雨TD1 分钟前
Spring AI 1.x 系列【18】深入了解更多的工具规范底层组件
java·人工智能·spring
希望永不加班1 分钟前
SpringBoot 应用启动失败常见原因与排查思路
java·spring boot·后端·spring
进击的小头3 分钟前
第19篇:多个PI控制器串联控制系统设计与参数整定调试实战
python·算法
ew452183 分钟前
【java】基于hutool实现.Excel导出任意多级自定义表头数据
java·开发语言·excel
承渊政道4 分钟前
【优选算法】(实战领略前缀和的真谛)
开发语言·数据结构·c++·笔记·学习·算法
闻哥8 分钟前
深入理解 InnoDB 的 MVCC:原理、Read View 与可见性判断
java·开发语言·jvm·数据库·b树·mysql·面试
Jul1en_9 分钟前
Java 集合判空方法对比
java·spring boot·算法·spring
golang学习记12 分钟前
IDEA 2026.1:这些 核心功能免费开放!
java·ide·intellij-idea
我就是你毛毛哥15 分钟前
Docker 安装 Jenkins JDK8 版
java·docker·jenkins