# Data Structures | Stack | Question 8

A single array A[1..MAXSIZE] is used to implement two stacks. The two stacks grow from opposite ends of the array. Variables top1 and top2 (topl< top 2) point to the location of the topmost element in each of the stacks. If the space is to be used efficiently, the condition for “stack full” is (GATE CS 2004)

**(A)** (top1 = MAXSIZE/2) and (top2 = MAXSIZE/2+1)**(B)** top1 + top2 = MAXSIZE**(C)** (top1= MAXSIZE/2) or (top2 = MAXSIZE)**(D)** top1= top2 -1**Answer:** **(D)****Explanation:** If we are to use space efficiently then size of the any stack can be more than MAXSIZE/2.

Both stacks will grow from both ends and if any of the stack top reaches near to the other top then stacks are full. So the condition will be top1 = top2 -1 (given that top1 < top2)

Quiz of this Question