grows upward from max_limit to 1. Each new item ‘pushed’ in the stack takes its place above previously
entered item. The items are ‘popped’ out in the reverse order in which they were entered, i.e., the last item
is popped out fi rst. This being the main reason that they are called LIFO (last in fi rst out). This process
is called winding in the recursion context. When recursion is stopped in the above program and when n
becomes 1 and the function returns the value 1, all the function calls saved inside the stack are popped out
from the stack in the reverse order and get executed, i.e., fact (1) returns to fact(2), fact(2) ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.