使用栈实现队列

使用栈实现队列

问题

这个题目说的是,你要使用栈来实现一个队列,需要实现队列中常用的 4 个函数。其中,push 函数往队尾加入一个元素;pop 函数把队首元素移除;peek 函数返回队首元素;empty 函数返回队列是否为空。另外你的实现不需要考虑异常操作情况,比如从一个空队列里 pop 元素。

代码

public class AlgoCasts {

  public class MyQueue {

    private Stack<Integer> in = new Stack<>(), out = new Stack<>();

    private void transferIfEmpty() {
      if (out.empty())
        while (!in.empty())
          out.push(in.pop());
    }

    public void push(int x) {
      in.push(x);
    }

    public int pop() {
      transferIfEmpty();
      return out.pop();
    }

    public int peek() {
      transferIfEmpty();
      return out.peek();
    }

    public boolean empty() {
      return in.empty() && out.empty();
    }
  }

}

  转载请注明: ForwardXu 使用栈实现队列

 上一篇
拍平二叉树 拍平二叉树
拍平二叉树问题 这个题目说的是,给你一棵二叉树,你要将它拍平,使得每个节点都只有右子树,并且拍平后的二叉树从上到下的节点是原二叉树前序遍历的结果。 比如说,给你的二叉树是: 0 / \ 1 2 /
2019-02-13
下一篇 
Hbase hbck深入 Hbase hbck深入
Hbase hbck深入官网介绍:http://hbase.apache.org/book.html#hbck.in.depthHBaseFsck(hbck)是一个用于检查区域一致性和表完整性问题并修复损坏的HBase的工具。它工作在两种基
2019-02-11
  目录