474 views
1 votes
1 votes

can someone give some understandable explaination about this?

2 Answers

Best answer
3 votes
3 votes
Ans:- A
What question asked to do :- If any stack is empty then give the condition by which we can show "Error" if any pop operation appiled on a empty stack.
Solution:-
1) Given Q stacks of size P/Q, and it start from 0.
2) By giving stack 0 stores elements from 0 to Q-1 and so on (these no.'s are element's position in array S), they have actually given       you the size of each stack i.e. P/Q = Q.
3) Now if a stack 0 is empty then it means top0 == -1, or it can be said top0 == 0*(P/Q) - 1,
    Similary for top1 == Q-1
                       => top1 == 1*(P/Q) - 1
                      => top1 == Q - 1 ( P/Q = Q).
Now generalize it
Top i == i (P/Q) - 1
selected by
1 votes
1 votes
Implementation of multiple stack in a single array : let array size P, and we are implementing Q stacks hence each stack size becomes P/Q; Array is indexed from 0 to P-1 (size of array is P); Each stack is empty yet as we have not pushed any element. so TOP of 0th stack is T0=0*P/Q - 1, 1st stack is TOP1=1*P/Q - 1; .... and so on ith stack TOPi= i*P/Q - 1; now come on question; FOR POP OPERATION ON STACK IT SHOULD NOT BE EMPTY, so T(i) =T(i-1)+P/Q (ith stack TOP will be equal to (i-1)th stack TOP +Stack size=P/Q ) by expression T(i)==( (i-1)*P/Q - 1 )+ P/Q so it becomes  A

No related questions found