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

avatar
作者
猴君
阅读量:0

文章目录

题目

用栈实现队列 leetcode :232

总结

时间复杂度
平均下来每个方式是O(1)
在这里插入图片描述

代码

 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();         }      } 

运行结果

在这里插入图片描述

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!