Implement the following operations of a queue using stacks.
- enqueue(x) : Insert an item x to the rear of queue.
- dequeue() : Remove an item from front of queue
- peek() : Get the front item.
- empty() : Return whether the queue is empty.
- You must use only standard operations of a stack : which means only push to top, peek/pop from top, size, and isempty operations are valid.
- Depending on your language, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended queue), as long as you use only standard operations of a stack.
- You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue).
NewQueue queue = new NewQueue(); queue.enqueue(5); queue.enqueue(10); queue.peek(); // returns 5 queue.dequeue(); // returns 5 queue.empty(); // returns false
First line contains N, the total number of queries.
Each of the following N lines have a query of any of the 4 types, type 1(enqueue), type 2(dequeue), type 3(peek), type 4(empty).
Query for type 1 is of format: 1 v, where v is value
Query for type 2, 3 and 4 just mention the query type
For example, the input for the above example will be:
5 1 5 1 10 3 2 4