美文网首页
[java]两个栈实现队列

[java]两个栈实现队列

作者: 第六象限 | 来源:发表于2017-11-24 10:59 被阅读0次

    支持队列的基本操作add/poll/peek

    public class TwoStackQueue{
      public Stack<Integer> stackPush;
      public Stack<Integer> stackPop;
    
      public TwoStackQueue(){
        stackPush=new Stack<Integer>();
        stackPop=new Stack<Integer>();
      }
      public void add(int value){
        stackPush.push(value)
      }
    
      public void shiftStacks(){
        if(stackPop.empty()&&stackPush.empty()){
          throw new RuntimeException("Queue is empty!");
        }
        else if(stackPop.empty()){
          while(!stackPush.empty()){
            stackPop.push(stackPush.pop());
          }
        }
      }
    
      public int peek(){
        shiftStacks();
        return stackPop.peek();
      }
    
      public int poll(){
        shiftStacks();
        return stackPop.pop();
      }
    }
    

    相关文章

      网友评论

          本文标题:[java]两个栈实现队列

          本文链接:https://www.haomeiwen.com/subject/neuxbxtx.html