栈和队列----由两个栈组成队列
Posted Demrystv
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈和队列----由两个栈组成队列相关的知识,希望对你有一定的参考价值。
由两个栈组成队列
由两个栈实现一个队列,支持队列的基本操作(add poll peek),需要注意的是,stackPush向stackPop中压入数据,必须一次性的把stackPush中的元素全部压入,此外,如果stackPop不为空,不能向stackPop中压入数据。
package com.test; import java.util.Stack; /** * Created by Demrystv. */ public class TwoStacksQueue { Stack<Integer> stackPush = new Stack<Integer>(); Stack<Integer> stackPop = new Stack<Integer>(); public void add(int pushInt){ stackPush.push(pushInt); } //poll是检索并删除这个队列的头 public int poll(){ if(stackPop.isEmpty() && stackPush.isEmpty()){ throw new RuntimeException("Queue is empty."); }else if (stackPop.isEmpty()){ while (!stackPush.isEmpty()){ stackPop.push(stackPush.pop()); } } return stackPop.pop(); } //peek是检索但不删除这个队列的头 public int peek(){ if(stackPop.isEmpty() && stackPush.isEmpty()){ throw new RuntimeException("Queue is empty."); }else if (stackPop.isEmpty()){ while (!stackPush.isEmpty()){ stackPop.push(stackPush.pop()); } } return stackPop.peek(); } }
以上是关于栈和队列----由两个栈组成队列的主要内容,如果未能解决你的问题,请参考以下文章