| S.No |
Topic |
Sub-Topics |
| 1 | Introduction & Complexity | What is DSA, Time Complexity (Big-O), Space Complexity, Best/Average/Worst case, Simple examples |
| 2 | Arrays Basics | Declaration & Access, Common operations, Two-pointer technique, Sliding window intro, In-place vs extra space |
| 3 | Arrays Problems | Subarray sum, Prefix sums, Kadane's algorithm, Rearrange problems, Dutch National Flag |
| 4 | Strings Basics | Immutability, Common operations, Character arrays, String builders, Unicode & encodings |
| 5 | Strings Algorithms | Pattern search (KMP), Rabin-Karp, Anagrams, Palindromes, Trie intro |
| 6 | Linked Lists | Singly vs Doubly, Operations (insert/delete), Reverse list, Fast/Slow pointers, Detect cycle |
| 7 | Stacks & Queues | LIFO vs FIFO, Implementation using arrays/linked list, Monotonic stack, Circular queue, Applications |
| 8 | Recursion & Backtracking | Recurrence relations, Call stack, Backtracking patterns, Subset/permutation generation, N-Queens |
| 9 | Sorting Algorithms | Bubble, Selection, Insertion, Merge sort, Quick sort |
| 10 | Searching Algorithms | Linear search, Binary search, Binary search on answer, Search in rotated array, Interpolation search |
| 11 | Hashing & Hash Tables | Hash functions, Collision resolution, HashMap/HashSet, Frequency maps, Anagram/counting problems |
| 12 | Priority Queue & Heaps | Binary heap, Insert/extract, Heapify, Kth largest, Heap for merge/k-way |
| 13 | Trees Basics | Binary tree, Tree traversal (pre/in/post), Height/depth, Recursive vs iterative, Tree representations |
| 14 | Binary Search Tree (BST) | BST properties, Insert/Delete/Search, Lowest common ancestor, Range queries, Balanced vs unbalanced |
| 15 | Tries (Prefix Trees) | Insert/Search, Prefix queries, Autocomplete, Word dictionary, Memory considerations |
| 16 | Graphs Basics | Directed vs undirected, Adjacency list/matrix, Graph traversal, Connected components, Dense vs sparse |
| 17 | Graph Traversal | BFS, DFS, Tree vs graph traversal, Level order, Parent/Distance tracking |
| 18 | Shortest Path Algorithms | Dijkstra, Bellman-Ford, SPFA, Weighted vs unweighted, Single-source vs all-pairs |
| 19 | Minimum Spanning Tree | Kruskal, Prim, Union-Find intro, Cycle detection, Applications |
| 20 | Union-Find / Disjoint Set | Make/Find/Union, Path compression, Union by rank, Connected components, Offline queries |
| 21 | Dynamic Programming | Overlapping subproblems, Optimal substructure, Memoization vs tabulation, State definition, Simple examples |
| 22 | Common DP Patterns | 0/1 Knapsack, Unbounded knapsack, Longest Increasing Subsequence, Longest Common Subsequence, DP on strings |
| 23 | Advanced DP | Bitmask DP, DP on trees, Digit DP, Convex hull trick intro, Optimization techniques |
| 24 | Greedy Algorithms | Greedy choice property, Activity selection, Huffman coding, Fractional knapsack, Interval scheduling |
| 25 | Bit Manipulation | Bit ops (&,|,^,~,<<,>>), Count bits, Lowbit, Bitmask tricks, XOR properties |
| 26 | Sliding Window & Two Pointers | Fixed window, Variable window, Two-pointer for pairs, Subarray problems, Window optimization |
| 27 | Prefix/Suffix & Difference Arrays | Prefix sums, Suffix sums, Prefix max/min, Range update via diff array, Prefix product |
| 28 | Segment Tree & Fenwick Tree | Point update & range query, Range update & point query, Lazy propagation, Fenwick implementation, Use-cases |
| 29 | Advanced Graphs & Flows | Topological sort, DAG applications, Max flow (Edmonds-Karp), Min-cut, Matching basics |
| 30 | Interview Prep & Practice | Common patterns, Problem-solving checklist, Mock interviews, Platforms (LeetCode, Codeforces), Time-boxed practice |