利用队列实现栈
Posted moris5013
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用队列实现栈相关的知识,希望对你有一定的参考价值。
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;
以上是关于利用队列实现栈的主要内容,如果未能解决你的问题,请参考以下文章
利用递归实现 两个队列实现一个栈的教程 写的超级详细小白都能看懂!
Leetcode快速入门之第六节课: 利用栈和队列实现树的遍历(前序中序后序层次)