Complete DSA Textbook (Java Version)
Mathematics for DSA
- Big-O, Big-Ω, Big-Θ Notation
- Time & Space Complexity Analysis
- Recurrence Relations & Master Theorem
- Logarithms, Exponentials
- Modular Arithmetic & Fast Exponentiation
- Prime Sieves (Sieve of Eratosthenes)
- GCD, LCM using Euclid Algorithm
- Combinatorics Basics (nCr, Pascal DP)
Arrays
- Static & Dynamic Arrays
- Sliding Window Technique
- Two Pointers
- Prefix/Suffix Arrays
- Difference Array
- Kadane’s Algorithm
- Binary Search Patterns
- Inversion Count
Strings
- String Hashing
- Rabin–Karp
- Boyer–Moore
- KMP Algorithm
- Z-Algorithm
- Manacher’s Algorithm
- Suffix Array
- Trie-based Patterns
Linked Lists
- Singly & Doubly Linked Lists
- Cycle Detection (Floyd)
- Merge K Sorted Lists
- Skip Lists
- LRU Cache
Stacks & Queues
- Monotonic Stack
- Next Greater Element
- Expression Evaluation
- Deque & Sliding Window Max
Trees
- Binary Tree Traversals
- Height, Diameter
- LCA (Binary Lifting, DFS)
- Balanced BSTs
- AVL, Red-Black Trees (concept)
- Segment Trees
- Fenwick Tree
- Tries
Graphs
- BFS, DFS
- Cycle Detection
- Topological Sorting
- Dijkstra
- Bellman-Ford
- Floyd-Warshall
- Kruskal & Prim
- Disjoint Set Union (Union-Find)
- Bridges & Articulation Points
- SCC: Kosaraju & Tarjan
Dynamic Programming
- Recursion to DP Transition
- Memoization & Tabulation
- Knapsack (0/1, Unbounded)
- LCS, LIS
- Edit Distance
- Grid DP
- Tree DP
- Digit DP
- Bitmask DP
Advanced Data Structures
- Treaps
- Skip Lists
- Bloom Filters
- Suffix Tree
- LRU/LFU Cache
- K-D Trees
Bit Manipulation
- Bit Operations
- Counting Bits
- XOR Patterns
- Submask Enumeration
- Gray Code
- Bit Tricks for DP