What is Stack?
A data structure that follows Last-In-First-Out (LIFO) ordering, where elements are added and removed from the same end (top).
Stacks support push (add to top) and pop (remove from top) operations, both in O(1). The call stack tracks function calls and local variables. Stacks are used in undo operations, expression evaluation, backtracking algorithms, and depth-first search.
The function call stack is fundamental to how programs execute — each function call pushes a stack frame, and returning pops it. Stack overflow occurs when the stack exceeds its memory limit, typically from infinite recursion.