package com.coding.basic.stack; import com.coding.basic.queue.Queue; /** * * @author zj * * @param <E> */ public class StackWithTwoQueues<E> { private final Queue<E> q1 = new Queue<E>(); private final Queue<E> q2 = new Queue<E>(); public void push(E data) { q1.enQueue(data); } public E pop() { while(q1.size()>1){ q2.enQueue(q1.deQueue()); } return q1.deQueue(); } public int size(){ return q1.size()+q2.size(); } public boolean isEmpty(){ return q1.size()+q2.size()==0; } }