用栈实现队列oj

Posted ohana!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用栈实现队列oj相关的知识,希望对你有一定的参考价值。

题目内容:

 解题思路:

  1. 栈的特性  ----(后进先出)    队列的特性 ---- (先入先出)
  2. 用两个栈实现,s1压栈,s2压栈并出栈(实现先入先出的特性)
  3. 当s2空时,将s1的元素全部压入

 解题代码:

class MyQueue {
    Stack<Integer> s1;
    Stack<Integer> s2;
    public MyQueue() {
        s1 = new Stack<>();
        s2 = new Stack<>();
    }
    
    public void push(int x) {
        s1.push(x);
    }
    
    public int pop() {
        if(s2.empty()){
            while(!s1.empty()){
                s2.push(s1.pop());
            }
        }
        return s2.pop();
    }
    
    public int peek() {
         if(s2.empty()){
            while(!s1.empty()){
                s2.push(s1.pop());
            }
        }
        return s2.peek();
    }
    
    public boolean empty() {
        /*
        if(s1.size() == 0 && s2.size() == 0){
            return true;
        }else{
            return false;
        }
        */
        if(s1.empty() && s2.empty()){
            return true;
        }else{
            return false;
        }
    }
}

以上是关于用栈实现队列oj的主要内容,如果未能解决你的问题,请参考以下文章

数据结构栈和队列OJ练习(栈和队列相互实现+循环队列实现)

数据结构学习笔记(栈队列OJ题)整体与总结

数据结构学习笔记(栈队列OJ题)整体与总结

代码随想录算法训练营第10天 | ● 理论基础 ● 232.用栈实现队列 ● 225. 用队列实现栈

Java 求解用栈实现队列

数据结构用栈实现队列