Personal reference guide covering core data structures and algorithms in Python — from Big O fundamentals through sorting, searching, trees, graphs, and dynamic programming.
| Topic | Description |
|---|---|
| Big O Notation | Time/space complexity, simplification rules, code examples |
| Linked Lists | Singly/doubly linked, Node class, full implementation |
| Stacks | LIFO, push/pop/peek, built-in list usage |
| Queues | FIFO, enqueue/dequeue, queue module, collections.deque |
| Hash Tables | Python dicts, CRUD, frequency counting patterns |
| Trees | Binary trees, terminology, real-world uses |
| Graphs | Directed/undirected/weighted, adjacency list implementation |
| Recursion | Base/recursive case, factorial iterative vs recursive |
| Dynamic Programming | Memoization, tabulation, Fibonacci, coin change |
| Searching | Linear search, binary search, bisect module |
| Binary Search Trees | BST properties, insert, search, complexity |
| DFS | In-order, pre-order, post-order, graph DFS with stack |
| BFS | Level-order traversal, graph BFS with queue |
| Heaps | Min/max heap, heapq module, priority queues |
| Sorting | Bubble, selection, insertion, merge, quick sort |
| Complexity Cheat Sheet | Full reference table + decision guide |
| File | Description |
|---|---|
python_data_structures.md |
Complete reference guide with explanations, code examples, and complexity tables |
MIT