两个队列实现栈
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
/**
* @Author JH
* @CreateDate 18-6-1
* @Description 两个队列实现栈
*/
public class StackToQueue {
private Queue<Integer> queue1=new LinkedList<Integer>();
private Queue<Integer> queue2=new LinkedList<Integer>();
public void push(int node){
if(queue1.isEmpty())
queue2.add(node);
else queue1.add(node);
}
public int pop() {
if (queue1.size() > 0) {
while (!queue1.isEmpty()) {
if (queue1.size() == 1) return queue1.remove();
queue2.add(queue1.remove());
}
} else {
while (!queue2.isEmpty()) {
if (queue2.size() == 1) return queue2.remove();
queue1.add(queue2.remove());
}
}
return -1;
}
public static void main(String[] args) {
StackToQueue s=new StackToQueue();
s.push(1);
s.push(2);
s.push(3);
s.push(4);
System.out.println(s.pop());
System.out.println(s.pop());
System.out.println(s.pop());
System.out.println(s.pop());
System.out.println(s.pop());
}
}