A stack is a list like structure where stack items can only be added or removed from the end of the stack. Just like a plate stack in canteens where plates are added to the top and later removed from the top.
When a function is called, the address of the next instruction is pushed onto the stack. When the function exits, the address is popped off the stack and execution continues at that address.

