Dark Mode

2,366 views

8 votes

0

0

4 votes

**I think the answer is 24. **

If we see, there will be only three elements after all the operations which may prompt us to think the size of the stack is =12 bytes (3*4 bytes) .

But STACK is a static data structure and hence needs to allocate space for all the numbers even if they are not present in the stack simultaneouly.

**Here , numbers are - 5 5 6 6 7 8 (Consider them as block of memory rather than nummbers )**

**So, size of the datastructure will be = 6* 4 Bytes= 24 Bytes **

**PUSH and POP operations doesn't allocate or free memory . They are simply the Increment/decrement of Stack Pointer.**

0

Hello sir , sorry for late response. Happy Diwali :)

as i'm able to see , if there is condition like 'No additional space avail' then i don't think that this work can be done in constant time...if there is again condition like only PUSH is allowed , no POP then , using some temp variable we can certainly tell MAX in const time but when 'in b/w' POP is going on , we can't tell MAX in O(1) unless we use some additional stack like Rishabh answered...

I'm not that good with programming , please tell me if i went wrong somewhere.

as i'm able to see , if there is condition like 'No additional space avail' then i don't think that this work can be done in constant time...if there is again condition like only PUSH is allowed , no POP then , using some temp variable we can certainly tell MAX in const time but when 'in b/w' POP is going on , we can't tell MAX in O(1) unless we use some additional stack like Rishabh answered...

I'm not that good with programming , please tell me if i went wrong somewhere.

0

2 votes

Ans b) 24

There will be **six elements after the above set of operations**. So size of **stack is 24.** **Max reports the maximum element in stack and will not remove it**. And Stack need not be a static data structure. If Stack is implemented using a linked list then it can grow dynamically. PUSH operation will create a node, allocate memory to it and then add it to the stack. If so each node will also contain a pointer which will consume some memory. But no such condition is mentioned in the question and hence can be ignored.

1 vote

**Answer Varies.**

Stack is linear data structure.

If its **static implementation of stack**, iel using linear array then answer is **24 bytes. when total used space is asked.**

If its **dynamic implementation of stack**, ie. using linked list then answer is **12 bytes.**

Also if current allocated space asked in static implementation then its **12 bytes.**

0 votes

Its a made easy test series question.

After performing all the operations stack will have 3 values and max will have 1 value so size of data structure after all these operations = size of stack+max= (3+1)*4 =16.

In made easy solution,they have given 24 as answer and they have assumed that eachs tack entry is 8B(but question says4).

But we need to include memory occupied by max also as it is part of the data structure.

So 16 should be correct answer

After performing all the operations stack will have 3 values and max will have 1 value so size of data structure after all these operations = size of stack+max= (3+1)*4 =16.

In made easy solution,they have given 24 as answer and they have assumed that eachs tack entry is 8B(but question says4).

But we need to include memory occupied by max also as it is part of the data structure.

So 16 should be correct answer