Implement a MyQueue class which implements a queue using two stacks.
class MyQueue {
Stack<Node> stackLIFO = new Stack<Node>();
Stack<Node> stackFIFO = new Stack<Node>();
public void enqueue(Node node) {
stackLIFO.push(node);
}
public Node dequeue() {
if (stackFIFO.isEmpty() && stackLIFO.isEmpty()) return null;
if (!stackFIFO.isEmpty()) {
return stackFIFO.pop();
}
else {
while(!stackLIFO.isEmpty()) {
Node temp = stackLIFO.pop();
stackFIFO.push(temp);
}
return stackFIFO.pop();
}
}
}
No comments:
Post a Comment