码迷,mamicode.com
首页 > 其他好文 > 详细

利用队列实现栈

时间:2019-10-06 15:18:27      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:swap   实现   cep   数组   tmp   pre   runtime   hint   style   

java中的队列LinkedList是动态数组实现的,这里利用两个队列来实现栈

public class MyStack {

    private Queue<Integer> data;
    private Queue<Integer> help;

    public MyStack() {
        data = new LinkedList<Integer>();
        help = new LinkedList<Integer>();
    }

    public void push(int pushInt) {
        data.add(pushInt);
    }

    public int peek() {
        if (data.isEmpty()) {
            throw new RuntimeException("Stack is empty!");
        }
        while (data.size() != 1) {
            help.add(data.poll());
        }
        int res = data.poll();
        // 与poll相比,重新追加到队尾中去
        help.add(res);
        swap();
        return res;
    }

    public int pop() {
        if (data.isEmpty()) {
            throw new RuntimeException("Stack is empty!");
        }
        while (data.size() > 1) {
            help.add(data.poll());
        }
        int res = data.poll();
        swap();
        return res;
    }

    private void swap() {
        Queue<Integer> tmp = help;
        help = data;
        data = tmp;
    }

}

 

利用队列实现栈

标签:swap   实现   cep   数组   tmp   pre   runtime   hint   style   

原文地址:https://www.cnblogs.com/moris5013/p/11627272.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!