import java.util.ArrayDeque;

/**
* 用队列实现栈
*/
public class QueueToStack {

public static class Mystack<T> {

// 此处把ArrayDeque当做队列使用
public ArrayDeque<T> data;

public ArrayDeque<T> help;

public int size;

public Mystack() {
data = new ArrayDeque();
help = new ArrayDeque();
}

public void push(T value) {
if (help.isEmpty()) {
data.push(value);
} else {
help.push(value);
}
size++;
}

public T pop() {
if (isEmpty()) {
System.out.println("the statck is empty");
return null;
}
size--;
if (data.isEmpty()) {
for (int i = 0; i < size; i++) {
data.push(help.pollLast());
}
return help.pollLast();
} else {
for (int i = 0; i < size; i++) {
help.push(data.pollLast());
}
return data.pollLast();
}
}

public boolean isEmpty() {
return size == 0;
}

}

}

/* 如有错误,欢迎批评指正 */