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 (bottom to top): 100, 200, 300, 400 (Top)
Stack S2: empty (capacity 2)
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?
Tap to open full sizeFigure description
Two stack diagrams side by side. Left: Stack S1, drawn as a vertical box divided into 4 cells, bottom to top: 100, 200, 300, 400, with '400 (Top)' labeling the topmost cell, labeled 'Stack S1' below. Right: Stack S2, drawn as a vertical box with 2 empty cells (capacity 2), labeled 'Stack S2' below, currently empty.
- (A)
100, 200, 400, 300
- (B)
200, 300, 400, 100
- (C)
400, 200, 100, 300
- (D)
300, 200, 400, 100