Data Structures18 min read

Stack in Python

Learn stack (LIFO) using lists and deque, why stacks matter, and real examples like undo operations and bracket matching.

David Miller
December 21, 2025
0.0k0

A **stack** follows LIFO: Last In, First Out. Real examples: - undo/redo - browser back button - function call stack ## Implement stack with list (simple) ```python stack = [] stack.append("A") # push stack.append("B") print(stack) top = stack.pop() # pop print(top) print(stack) ``` ## Stack example: bracket matching Goal: check if parentheses are balanced. ```python def is_balanced(s: str) -> bool: stack = [] pairs = {")": "(", "]": "[", "}": "{"} for ch in s: if ch in "([{": stack.append(ch) elif ch in ")]}": if not stack or stack[-1] != pairs[ch]: return False stack.pop() return len(stack) == 0 print(is_balanced("(a[b]{c})")) # True print(is_balanced("(a[b]{c}")) # False ``` ## Graph: stack LIFO ```mermaid flowchart TD A[Push A] --> B[Stack: A] B --> C[Push B] C --> D[Stack: A,B] D --> E[Pop -> B] ``` ## Remember - stack = append + pop - stack[-1] is the top - used in parsing and “undo” logic

#Python#Intermediate#Stack