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