剑指offer面试题java实现之题7之相关题目:用两个队列实现一个栈
来源:互联网 发布:啄木鸟审计软件 编辑:程序博客网 时间:2024/06/06 10:52
/** * 使用两个队列模拟栈操作 * @author Administrator * */public class StackWithTwoQueue<T> { Queue<T> queue1 = new LinkedList<T>(); Queue<T> queue2 = new LinkedList<T>(); /** *模拟入栈操作 */ public void push(T t){ if(queue1.size()>0) queue1.add(t); else queue2.add(t); } /** * 模拟出栈操作 * @return */ public T pop(){ /*选择不为空的那个队列,然后将所有元素(除队尾元素外), * 移动到另一个队列中,接着进行出栈操作 * */ if(queue1.size()>queue2.size()){ while(queue1.size()!=1){ queue2.add(queue1.remove()); } return queue1.remove();//出栈操作 }else if(queue2.size()>queue1.size()){ while(queue2.size()!=1){ queue1.add(queue2.remove()); } return queue2.remove();//出栈操作 }else{//此情况为两个队列全部为空 try { throw new Exception("栈为空,不能出栈"); } catch (Exception e) { e.printStackTrace(); } return null; } } public static void main(String[] args) { StackWithTwoQueue<Integer> stack = new StackWithTwoQueue<Integer>(); stack.push(1); stack.push(2); stack.push(3); System.out.println(stack.pop()); stack.push(4); stack.push(5); System.out.println(stack.pop()); System.out.println(stack.pop()); System.out.println(stack.pop()); }}
0 0
- 剑指offer面试题java实现之题7之相关题目:用两个队列实现一个栈
- 剑指offer面试题java实现之题4之相关题目:两个排序数组合并
- 剑指offer之面试题7用两个栈实现一个队列
- 剑指offer面试题之用两个栈实现队列
- 剑指offer面试题java实现之题7:用两个栈模拟一个队列的入队和出队操作
- 【面试题】剑指Offer-7-两个栈实现一个队列
- 《剑指Offer》面试题:用两个队列实现一个栈
- 剑指offer之面试题7:用两个栈实现队列
- 剑指Offer之面试题7:用两个栈实现队列
- 剑指Offer学习之面试题7:用两个栈实现队列
- 剑指offer-->面试题7 用两个栈实现队列
- 【剑指offer】面试题7:用两个栈实现队列
- 剑指Offer:面试题7 用两个栈实现队列
- 《剑指Offer》面试题7:用两个栈实现队列
- 【剑指offer】 面试题7: 用两个栈实现队列
- 【剑指offer】面试题7:用两个栈实现队列
- 剑指offer-面试题7:用两个栈实现队列
- 剑指offer---面试题7 用两个栈实现队列
- Android-实现图片的简单特效(平移、缩放、旋转、镜面、倒影)
- poj 1321 DFS
- 抽象类和抽象方法
- POJ 2115 C Looooops (拓展的欧几里得) 拓展的欧几里得详解
- Cocos2d-x 移植到 Windows10 环境搭建
- 剑指offer面试题java实现之题7之相关题目:用两个队列实现一个栈
- github备忘(linux下)
- Python中if __name__='__main__':的解析
- 小岛上的蓝眼睛的人要几天才能全部离开
- shader 编程工具:NVIDIA FX Composer和Render Monkey
- Java(十四)--创建窗口,添加按钮,接受事件
- Android的HTTP客户端选择及HttpResponseCache的使用
- 近似直径算法的 GraphChi 实现
- 【请求加密】android ios java后台通用DES base64加密