Related Articles

# GATE | GATE-CS-2006 | Question 49

• Difficulty Level : Expert
• Last Updated : 28 Jun, 2021

An implementation of a queue Q, using two stacks S1 and S2, is given below:

Attention reader! Don’t stop learning now.  Practice GATE exam well before the actual exam with the subject-wise and overall quizzes available in GATE Test Series Course.

Learn all GATE CS concepts with Free Live Classes on our youtube channel.

 `void` `insert(Q, x) {``   ``push (S1, x);``}``  ` `void` `delete``(Q){``   ``if``(stack-empty(S2)) then ``      ``if``(stack-empty(S1)) then {``          ``print(“Q is empty”);``          ``return``;``      ``}``      ``else` `while` `(!(stack-empty(S1))){``          ``x=pop(S1);``          ``push(S2,x);``      ``}``   ``x=pop(S2);``}`

Let n insert and m (<=n) delete operations be performed in an arbitrary order on an empty queue Q. Let x and y be the number of push and pop operations performed respectively in the process. Which one of the following is true for all m and n?
(A) n+m <= x < 2n and 2m <= y <= n+m
(B) n+m <= x < 2n and 2m<= y <= 2n
(C) 2m <= x < 2n and 2m <= y <= n+m
(D) 2m <= x <2n and 2m <= y <= 2n