package com.coding.week9; import com.coding.week8.CircleQueue; public class StackWithTwoQueues { private CircleQueue<Integer> queue1 = new CircleQueue<>(); private CircleQueue<Integer> queue2 = new CircleQueue<>(); public void push(int data) { if (queue1.isEmpty()) { queue1.enQueue(data); } else { queue2.enQueue(data); } } public int pop() { if (queue1.isEmpty() && queue2.isEmpty()) { throw new RuntimeException("stack is empty"); } if (queue2.isEmpty()) { while (queue1.size() > 1) { queue2.enQueue(queue1.deQueue()); } return queue1.deQueue(); } else { while (queue2.size() > 1) { queue1.enQueue(queue2.deQueue()); } return queue2.deQueue(); } } }