使用两个队列实现一个栈
生活随笔
收集整理的這篇文章主要介紹了
使用两个队列实现一个栈
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
棧:先進(jìn)后出
隊(duì)列:先進(jìn)先出
思路:利用一個(gè)隊(duì)列做主隊(duì)列,另一個(gè)隊(duì)列作為輔助隊(duì)列,把元素翻轉(zhuǎn)過(guò)來(lái)即可。
public class Test {class QueueStack {private Queue<Integer> queueA = new LinkedList<Integer>();private Queue<Integer> queueB = new LinkedList<Integer>();public void push(Integer val) {if(queueA.size() ==0) {queueA.offer(val);}else {//之前的先出隊(duì)列,保存到queueBwhile(!queueA.isEmpty()) {queueB.offer(queueA.poll());}//把當(dāng)前元素放到A中queueA.offer(val);//把隊(duì)列B中的元素重新放到A中while(!queueB.isEmpty()) {queueA.offer(queueB.poll());}}}public Integer pop() {return queueA.poll();}}public static void main(String[] args) {Test test = new Test();QueueStack queueStack = test.new QueueStack();queueStack.push(1);queueStack.push(2);queueStack.push(3);Integer val = null;while ((val = queueStack.pop()) != null) {System.out.println(val);}}}總結(jié)
以上是生活随笔為你收集整理的使用两个队列实现一个栈的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 夏橙的功效与作用、禁忌和食用方法
- 下一篇: 相交链表