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

    }

运行结果

相关推荐
叼烟扛炮1 分钟前
C++ 知识点17 友元
开发语言·c++·算法·友员
SamDeepThinking9 分钟前
写代码不考虑前后兼容,迟早要还的
java·后端·程序员
亿牛云爬虫专家13 分钟前
深度解析:数据采集场景下的 Java 代理技术实战
java·开发语言·数据采集·动态ip·动态代理·代理配置·连接池复用
小小仙。18 分钟前
IT自学第四十二天
java·开发语言
richard_yuu19 分钟前
数据结构|二叉树高阶进阶-经典算法
数据结构·c++·算法
java1234_小锋23 分钟前
说一下Spring的事务传播行为?
java·数据库·spring
庞轩px25 分钟前
第四篇:SpringBoot自动配置——约定大于配置的底层原理
java·spring boot·后端·spring·自动配置·注解开发
不知名的忻27 分钟前
Dijkstra算法(朴素版&堆优化版)
java·数据结构·算法··dijkstra算法
苏三说技术27 分钟前
美团二面:高并发下如何保证接口幂等性?
java·数据库
张筱竼30 分钟前
Android开发中的MVC、MVP与MVVM详解
android