剑指offerNo5. 用两个栈实现队列(Java)

题目描述:

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

思路:栈的特性是先进后出     队列的特性是先进先出。用两个栈,stack1专门用来进元素,stack2专门用来出元素,

元素  ---> stack1 --->stack2--->出元素

代码:

package offer;
import java.util.Queue;
import java.util.Stack;

public class TestNo5 {
    Stack<Integer> stack1 = new Stack<Integer>();
    Stack<Integer> stack2 = new Stack<Integer>();
    public static void main(String[] args) {
        TestNo5 t = new TestNo5();
        t.push(1);
        t.push(2);
        t.push(3);
        System.out.println(t.pop());
        System.out.println(t.pop());
    }
     //实现入队效果
    public void push(int node) {
        stack1.push(node);
    }
    //实现出队效果
    public int pop() {
        if(stack1.empty() && stack2.empty()){
            throw new RuntimeException("empty");
        }else if(stack2.empty()){
            while (!stack1.empty()){
                stack2.push(stack1.pop());
            }
        }
        return stack2.pop();
    }
}
发布了46 篇原创文章 · 获赞 11 · 访问量 3567

猜你喜欢

转载自blog.csdn.net/qq_40664693/article/details/104332397