GATE CS 2024 Set 2 | Question 48

MSQ · 2 marks

Let S1 and S2 be two stacks. S1 has capacity of 4 elements. S2 has capacity of 2 elements. S1 already has 4 elements: 100, 200, 300, and 400, whereas S2 is empty, as shown below.

Stack S1
400 (Top)
300
200
100
Stack S2
 
 

Only the following three operations are available:
PushToS2: Pop the top element from S1 and push it on S2.
PushToS1: Pop the top element from S2 and push it on S1.
GenerateOutput: Pop the top element from S1 and output it to the user.

Note that the pop operation is not allowed on an empty stack and the push operation is not allowed on a full stack.

Which of the following output sequences can be generated by using the above operations?

  1. Option A: 100, 200, 400, 300
  2. Option B: 200, 300, 400, 100 (correct)
  3. Option C: 400, 200, 100, 300 (correct)
  4. Option D: 300, 200, 400, 100 (correct)

Answer

(B), (C), (D)

Explanation

Only S1 can output, and S2 can park at most two elements taken from the top of S1.

  • (A) Impossible: to output 100 first, the three elements above it (400, 300 and 200) must all be parked, but S2 holds only two.
  • (B) Park 400 and 300, output 200, move 300 back and output it, move 400 back and output it, then output 100.
  • (C) Output 400, park 300, output 200 and 100, then move 300 back and output it.
  • (D) Park 400, output 300 and 200, move 400 back and output it, then output 100.

Answer: B, C, D