package com.heu.wsq.leetcode;
import java.util.LinkedList;
import java.util.Queue;
public class MyStack {
private Queue<Integer> queue1;
private Queue<Integer> queue2;
public MyStack() {
queue1 = new LinkedList<>();
queue2 = new LinkedList<>();
}
public void push(int x){
if (queue2.isEmpty() && queue1.isEmpty()){
this.queue1.add(x);
}else if (queue2.isEmpty()){
queue1.add(x);
}else if (queue1.isEmpty()){
queue2.add(x);
}
}
public int pop(){
Queue<Integer> outQueue;
Queue<Integer> inQueue;
if (!queue1.isEmpty()){
outQueue = queue1;
inQueue = queue2;
}else{
outQueue = queue2;
inQueue = queue1;
}
while (outQueue.size() > 1){
inQueue.add(outQueue.poll());
}
return outQueue.poll();
}
public int top(){
Queue<Integer> outQueue;
Queue<Integer> inQueue;
if (!queue1.isEmpty()){
outQueue = queue1;
inQueue = queue2;
}else{
outQueue = queue2;
inQueue = queue1;
}
while (outQueue.size() > 1){
inQueue.add(outQueue.poll());
}
int tmp = outQueue.peek();
inQueue.add(outQueue.poll());
return tmp;
}
public boolean empty(){
return queue2.isEmpty() && queue1.isEmpty();
}
public static void main(String[] args) {
MyStack ms = new MyStack();
ms.push(10);
ms.push(20);
ms.pop();
System.out.println(ms.top());
}
}