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.
Problem Note
- 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).
Example
NewQueue queue = new NewQueue();
queue.enqueue(5);
queue.enqueue(10);
queue.peek(); // returns 5
queue.dequeue(); // returns 5
queue.empty(); // returns false
Input Format:
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