Answer:
The algorithm for the process is explained below
Explanation:
EatYelloCandy:
initialise stack s
container is stack with candy
(this will work if container is list also just take first element out of list (which is top of stackif stack))
(similarly while pushing just append to list), but naturally as per statement container is stack
while container not empty
candy = container.pop()
if candy == yellow:
eat candy
else:
s.push(candy)
// NOw all candy from container are removed and all yellow candy have been eaten
while s is not empty:
candy = s.pop()
container.push (candy)
return container
This algorithm works in O(n) time where n is total number of candies.
This algorithm work correctly as it preserve the order of candies using stack which will have element in just reverse order of original container.