[java]两个栈实现队列

支持队列的基本操作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();
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容