68. Implement Queue using Stack

Implement a First-In-First-Out (FIFO) queue using two stacks. The implemented queue should support the following operations: push, pop, peek, and isEmpty.

Implement the StackQueue class:

void push(int x): Adds element x to the end of the queue.

int pop(): Removes and returns the front element of the queue.

int peek(): Returns the front element of the queue without removing it.

boolean isEmpty(): Returns true if the queue is empty, false otherwise.

Example 1:

Input:

["StackQueue", "push", "push", "pop", "peek", "isEmpty"]

[[], [4], [8], [], [], []]

Output:[null, null, null, 4, 8, false]

Explanation:

StackQueue queue = new StackQueue();

queue.push(4);

queue.push(8);

queue.pop(); // returns 4

queue.peek(); // returns 8

queue.isEmpty(); // returns false

Example 2:

Input:

["StackQueue", "isEmpty"]

[[]]

Output: [null, true]

Explanation:

StackQueue queue = new StackQueue();

queue.isEmpty(); // returns true

Now Your Turn!

Pick the correct output for the given input

Input:

["StackQueue", "push", "pop", "isEmpty"]

[[], [6], [], []]

Still unsure what the problem is asking ?

Let’s go through a few more examples, step by step, to make it clearer.

Constraints:

  • 1 <= numbers of calls made <= 100
  • 1 <= x <= 100

Hints

Frequently Occurring Doubts

Interview Follow-up Questions

0
class StackQueue {
public:
StackQueue() {
}
void push(int x) {
}
int pop() {
}
int peek() {
}
bool isEmpty() {
}
};
Test Case

Input:

Nums
Operations