Skip to content

Instantly share code, notes, and snippets.

@deepaksinghvi
Created April 28, 2019 08:59
Show Gist options
  • Save deepaksinghvi/08fbc2339bf1b4f0ea059856023d0abd to your computer and use it in GitHub Desktop.
Save deepaksinghvi/08fbc2339bf1b4f0ea059856023d0abd to your computer and use it in GitHub Desktop.
Queue Using Multiple Stacks
import java.util.Stack;
/**
* Author: Deepak Singhvi
*/
public class QueueUsingMultipleStack {
private Stack<Integer> s1 = new Stack<Integer>();
private Stack<Integer> s2 = new Stack<Integer>();
public static void main(String args[]) {
QueueUsingMultipleStack q = new QueueUsingMultipleStack();
q.enQueue(4);
q.enQueue(2);
q.enQueue(7);
int counter = 1;
System.out.println(counter++ + ": " + q.deQueue());
q.enQueue(8);
while (!q.s1.isEmpty()) {
System.out.println(counter++ + ": " + q.deQueue());
}
}
public Integer enQueue(Integer element) {
return s1.push(element);
}
public Integer deQueue() {
if (s1.isEmpty()) {
System.out.println("Queue Empty");
return null;
}
while (!s1.isEmpty()) {
s2.push(s1.pop());
}
Integer firstElement = s2.pop();
while (!s2.isEmpty()) {
s1.push(s2.pop());
}
return firstElement;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment