Implement Queue using Stacks

原创 2015年07月09日 14:37:39
class MyQueue {
    // Using two stacks.
    Stack<Integer> s1 = new Stack<Integer>();// Pop out.
    Stack<Integer> s2 = new Stack<Integer>();// Cache.
    
    // Push element x to the back of queue.
    public void push(int x) {
        s2.push(x);
    }

    // Removes the element from in front of queue.
    public void pop() {
        if (empty()) {
            return;
        }
        if (s1.isEmpty()) {
            while (!s2.isEmpty()) {
                s1.push(s2.peek());
                s2.pop();
            }
        }
        s1.pop();
    }

    // Get the front element.
    public int peek() {
        if (empty()) {
            return -1;
        }
        if (s1.isEmpty()) {
            while (!s2.isEmpty()) {
                s1.push(s2.peek());
                s2.pop();
            }
        }
        return s1.peek();
    }

    // Return whether the queue is empty.
    public boolean empty() {
        return s1.isEmpty() && s2.isEmpty();
    }
}

Stack_Queue 一个数组实现三个栈 @CareerCup

原文: Describe how you could use a single array to implement three stacks. 译文: 你如何只用一个数组实现三个栈...
  • hellobinfeng
  • hellobinfeng
  • 2014年03月01日 11:35
  • 1740

Java7后try-catch块的变化——aotocloseable接口

java7优化了异常捕获机制,增加了aotocloseable接口,try-catch块的写法可以更加简洁了...
  • a472770699
  • a472770699
  • 2015年07月16日 16:15
  • 656

gp的资源管理队列

gp可以通过resource queue来限制用户使用系统的资源,gp是通过用户可以执行并发的sql数量、每个sql的cost、sql的优先级来限制用户对gp资源的使用。 一般,系统根据公司对gp的使...
  • rgb_rgb
  • rgb_rgb
  • 2013年11月21日 22:42
  • 1340

【LeetCode-面试算法经典-Java实现】【028-Implement strStr() (实现strStr()函数)】

[【028-Implement strStr() (实现strStr()函数)】](028-Implement strStr() (实现strStr()函数))【LeetCode-面试算法经典-Jav...
  • DERRANTCM
  • DERRANTCM
  • 2015年07月25日 08:08
  • 2627

Shiro框架Web环境下过滤器结构分析

Shiro的过滤器的配置是结合使用Spring的DelegatingFilterProxy与FactoryBean2种技术来完成自身过滤器的植入的,所以理解Shiro的过滤器首先要理解这2者的使用。 ...
  • wangshfa
  • wangshfa
  • 2014年10月21日 14:06
  • 2273

java泛型详解

学习java或者软件开发的出去编程有时候项目经理经常会问到有关泛型的理解; 泛型:是指在定义类或者接口的时候可以为类和接口指定类型形参,该类型形参在定义变量和创建对象的确定 1、定义泛型类,程序实例代...
  • hgd613
  • hgd613
  • 2013年10月12日 20:24
  • 13060

java并发编程 之 Queue的一些总结

什么是队列队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。...
  • wuseyukui
  • wuseyukui
  • 2017年03月31日 00:09
  • 556

Java类集框架——LinkedList子类与Queue接口

学习目标: 掌握LinkedList与List接口的关系。 掌握Queue接口的作用。 LinkedList子类与Queue接口 LinkedList表示的是一个链表的操作类,此类的定义如下:...
  • u013087513
  • u013087513
  • 2016年08月16日 14:31
  • 1168

基于OKHttp的升级改造

在学习了鸿教主的两篇OKHttp的文章后,瞬间感觉OKHttp的高大上,在闲暇之余,将项目中的网络请求框架全部更换成OKHttp,当然在更换的过程中也有地方跟个人习惯有关,本人就在鸿教主的源码上做了一...
  • u010963246
  • u010963246
  • 2016年11月10日 18:50
  • 269

c++容器queue的用法整理

C++队列queue模板类的定义在头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。 C++队列Queue是一种容...
  • fengzhizi76506
  • fengzhizi76506
  • 2017年02月01日 18:48
  • 3180
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Implement Queue using Stacks
举报原因:
原因补充:

(最多只允许输入30个字)