Solution: Implement Queue Using Stacks

Let's solve the Implement Queue Using Stacks problem using the Stacks pattern.


Design a custom queue, MyQueue, using only two stacks. Implement the Push(), Pop(), Peek(), and Empty() methods:

  • Void Push(int x): Pushes element to the back of the queue.
  • Int Pop(): Removes and returns the element from the front of the queue.
  • Int Peek(): Returns the element at the front of the queue.
  • Boolean Empty(): Returns TRUE if the queue is empty. Otherwise FALSE.

You are required to only use the standard stack operations, which means that only the Push() to top, Peek() and Pop() from the top, Size(), and Is Empty() operations are valid.

Note: In some interview questions, Void Push(int x) and Int Pop() might be referred to as Void Enqueue(int x) and Int Dequeue(), respectively.


  • 1<=1 <= x <=100<= 100
  • A maximum of 100100 calls can be made to Push(), Pop(), Peek(), and Empty()
  • The Pop() and Peek() methods will always be called on non-empty stacks.

Level up your interview prep. Join Educative to access 70+ hands-on prep courses.