Implement Stack using 2 Queues
Costly Push Operation
public class StackUsingTwoQueues {
Queue<Integer> queue1 = new LinkedList<>();
Queue<Integer> queue2 = new LinkedList<>();
public void push(Integer element)
{
if(element==null)
{
return;
}
while(!queue1.isEmpty())
{
queue2.add(queue1.poll());
}
queue1.add(element);
while(!queue2.isEmpty())
{
queue1.add(queue2.poll());
}
}
public int pop()
{
return queue1.poll();
}
public static void main(String args[])
{
StackUsingTwoQueues stackUsingTwoQueus = new StackUsingTwoQueues();
stackUsingTwoQueus.push(1);
stackUsingTwoQueus.push(2);
stackUsingTwoQueus.push(3);
stackUsingTwoQueus.push(4);
stackUsingTwoQueus.push(5);
System.out.println(stackUsingTwoQueus.pop());
System.out.println(stackUsingTwoQueus.pop());
System.out.println(stackUsingTwoQueus.pop());
System.out.println(stackUsingTwoQueus.pop());
System.out.println(stackUsingTwoQueus.pop());
}
}
Comments
Post a Comment