package link;
/**
* 用栈实现队列
* @author
*
*/
import java.util.Stack;
public class StackQueue {
private Stack<Integer> stackA=new Stack<Integer>();
private Stack<Integer> stackB=new Stack<Integer>();
/**
* 入队操作
* @param element 入队元素
*/
public void enQueue(int element) {
stackA.push(element);
}
/**
* 出队操作
* @return
*/
public Integer deQueue() {
if(stackB.isEmpty()) {
if(stackA.isEmpty()) {
return null;
}
transfer();
}
return stackB.pop();
}
/**
* 栈A元素转义到栈B
*/
private void transfer() {
while(!stackA.isEmpty()) {
stackB.push(stackA.pop());
}
}
public static void main(String[] args) {
StackQueue stackQueue=new StackQueue();
stackQueue.enQueue(1);
stackQueue.enQueue(2);
stackQueue.enQueue(3);
System.out.println(stackQueue.deQueue());
System.out.println(stackQueue.deQueue());
stackQueue.enQueue(4);
System.out.println(stackQueue.deQueue());
System.out.println(stackQueue.deQueue());
}
}
java用栈实现队列
最新推荐文章于 2024-03-22 09:56:45 发布