DSA Mastery Roadmap
A comprehensive guide to mastering Data Structures and Algorithms. Track your progress through each individual concept and technique.
Fundamental Data Structures
| Concept | Status |
|---|---|
| Arrays | |
| Array Declaration & Initialization | |
| Array Traversal (Forward & Backward) | |
| Insertion at Beginning, Middle, End | |
| Deletion at Beginning, Middle, End | |
| Array Rotation (Left & Right) | |
| Searching in Arrays | |
| Sorting Arrays | |
| Strings | |
| String Immutability Concepts | |
| String Traversal & Character Access | |
| Substring Operations | |
| String Searching & Pattern Matching | |
| String Reversal Techniques | |
| String Comparison & Sorting | |
| Palindrome Detection | |
| Linked Lists | |
| Singly Linked List Implementation | |
| Doubly Linked List Implementation | |
| Circular Linked List Implementation | |
| Fast & Slow Pointer Technique | |
| Cycle Detection in Linked Lists | |
| Reversing Linked Lists | |
| Merging Linked Lists | |
| Stacks | |
| Stack Implementation (Array & Linked List) | |
| Push & Pop Operations | |
| Parentheses Matching | |
| Infix to Postfix Conversion | |
| Expression Evaluation | |
| Next Greater Element | |
| Queues | |
| Queue Implementation (Array & Linked List) | |
| Enqueue & Dequeue Operations | |
| Circular Queue Implementation | |
| Double Ended Queue (Deque) | |
| Priority Queue Implementation | |
| Hash Tables | |
| Hash Function Design | |
| Collision Handling - Chaining | |
| Collision Handling - Open Addressing | |
| HashMap Implementation | |
| HashSet Implementation | |
| Heaps | |
| Min Heap Implementation | |
| Max Heap Implementation | |
| Heapify Operations | |
| Heap Sort Algorithm | |
Tree Structures
| Concept | Status |
|---|---|
| Binary Trees | |
| Binary Tree Implementation | |
| Inorder Traversal (Recursive) | |
| Preorder Traversal (Recursive) | |
| Postorder Traversal (Recursive) | |
| Inorder Traversal (Iterative) | |
| Preorder Traversal (Iterative) | |
| Postorder Traversal (Iterative) | |
| Level Order Traversal (BFS) | |
| Binary Search Trees | |
| BST Implementation | |
| BST Insertion | |
| BST Deletion | |
| BST Search Operations | |
| Finding Min/Max Elements | |
| Inorder Successor/Predecessor | |
| BST Validation | |
| Tree Problems | |
| Tree Height Calculation | |
| Tree Diameter Calculation | |
| Balanced Tree Check | |
| Lowest Common Ancestor (LCA) | |
| Path from Root to Node | |
| Level of a Node | |
| Mirror/Symmetric Tree Check | |
| Advanced Trees | |
| AVL Tree Implementation | |
| AVL Tree Rotations | |
| Segment Tree Implementation | |
| Segment Tree Range Queries | |
| Fenwick Tree (BIT) Implementation | |
| Trie Implementation | |
| Trie Search & Insert | |
| Auto-complete using Trie | |
Graph Algorithms
| Concept | Status |
|---|---|
| Graph Representation | |
| Adjacency Matrix Representation | |
| Adjacency List Representation | |
| Edge List Representation | |
| Directed vs Undirected Graphs | |
| Weighted vs Unweighted Graphs | |
| Graph Traversal | |
| Depth First Search (DFS) - Recursive | |
| Depth First Search (DFS) - Iterative | |
| Breadth First Search (BFS) | |
| Connected Components | |
| Strongly Connected Components | |
| Shortest Path Algorithms | |
| Dijkstra's Algorithm | |
| Bellman-Ford Algorithm | |
| Floyd-Warshall Algorithm | |
| 0-1 BFS for Unweighted Graphs | |
| Cycle Detection | |
| Cycle Detection in Undirected Graph | |
| Cycle Detection in Directed Graph | |
| Union-Find for Cycle Detection | |
| Topological Sorting | |
| Topological Sort using DFS | |
| Kahn's Algorithm (BFS based) | |
| Detecting Cycles using Topological Sort | |
| Minimum Spanning Tree | |
| Prim's Algorithm | |
| Kruskal's Algorithm | |
| Union-Find Data Structure | |
| Advanced Graph Topics | |
| Articulation Points (Cut Vertices) | |
| Bridges in Graph | |
| Bipartite Graph Check | |
| Graph Coloring | |
Recursion & Backtracking
| Concept | Status |
|---|---|
| Basic Recursion | |
| Understanding Base Case & Recursive Case | |
| Factorial Calculation | |
| Fibonacci Series | |
| Power Calculation (x^n) | |
| Tower of Hanoi | |
| Sum of Digits | |
| GCD using Recursion | |
| Array Recursion | |
| Array Sum using Recursion | |
| Finding Max/Min in Array | |
| Linear Search using Recursion | |
| Binary Search using Recursion | |
| Array Reversal using Recursion | |
| String Recursion | |
| String Reversal using Recursion | |
| Palindrome Check using Recursion | |
| String Length using Recursion | |
| Combinatorics | |
| Generating All Subsets | |
| Generating All Permutations | |
| Generating All Combinations | |
| Letter Combinations of Phone Number | |
| Backtracking Problems | |
| N-Queens Problem | |
| Sudoku Solver | |
| Word Search in 2D Grid | |
| Rat in a Maze | |
| Knight's Tour Problem | |
| Subset Sum Problem | |
| Palindrome Partitioning | |
| Optimization Techniques | |
| Memoization Technique | |
| Pruning in Backtracking | |
| State Space Optimization | |
Searching & Sorting
| Concept | Status |
|---|---|
| Searching Algorithms | |
| Linear Search | |
| Binary Search | |
| Binary Search in Rotated Array | |
| Search for Range (First & Last Occurrence) | |
| Search in 2D Matrix | |
| Peak Element Finding | |
| Square Root using Binary Search | |
| Comparison Based Sorting | |
| Bubble Sort | |
| Selection Sort | |
| Insertion Sort | |
| Merge Sort | |
| Quick Sort | |
| Heap Sort | |
| Shell Sort | |
| Non-Comparison Sorting | |
| Counting Sort | |
| Radix Sort | |
| Bucket Sort | |
| Two/Multi Pointer Techniques | |
| Two Sum Problem | |
| Three Sum Problem | |
| Container with Most Water | |
| Dutch National Flag Algorithm | |
| Remove Duplicates from Sorted Array | |
| Merge Two Sorted Arrays | |
Greedy & Sliding Window
| Concept | Status |
|---|---|
| Greedy Algorithm Basics | |
| Understanding Greedy Choice Property | |
| Activity Selection Problem | |
| Fractional Knapsack Problem | |
| Coin Change Problem (Greedy) | |
| Job Scheduling Problem | |
| Interval Problems | |
| Meeting Rooms Problem | |
| Merge Intervals | |
| Non-overlapping Intervals | |
| Minimum Platforms Required | |
| Fixed Size Sliding Window | |
| Maximum Sum of K Elements | |
| Average of Subarray of Size K | |
| Maximum of All Subarrays of Size K | |
| Variable Size Sliding Window | |
| Longest Substring without Repeating Characters | |
| Minimum Window Substring | |
| Longest Substring with At Most K Distinct Characters | |
| Maximum Length Subarray with Sum K | |
| Monotonic Stack/Deque | |
| Next Greater Element | |
| Previous Greater Element | |
| Largest Rectangle in Histogram | |
| Sliding Window Maximum | |
| Stock Span Problem | |
Dynamic Programming
| Concept | Status |
|---|---|
| DP Fundamentals | |
| Understanding Overlapping Subproblems | |
| Optimal Substructure Property | |
| Memoization (Top-Down) | |
| Tabulation (Bottom-Up) | |
| Space Optimization Techniques | |
| 1D Dynamic Programming | |
| Fibonacci Series using DP | |
| Climbing Stairs Problem | |
| House Robber Problem | |
| Maximum Sum of Non-Adjacent Elements | |
| Coin Change (Minimum Coins) | |
| Coin Change (Number of Ways) | |
| Longest Increasing Subsequence | |
| 2D Dynamic Programming | |
| Grid Path Counting | |
| Minimum Path Sum in Grid | |
| Longest Common Subsequence (LCS) | |
| Longest Common Substring | |
| Edit Distance (Levenshtein) | |
| 0/1 Knapsack Problem | |
| Unbounded Knapsack Problem | |
| String DP | |
| Longest Palindromic Subsequence | |
| Longest Palindromic Substring | |
| Palindrome Partitioning | |
| Word Break Problem | |
| Advanced DP | |
| Matrix Chain Multiplication | |
| Maximum Rectangle in Binary Matrix | |
| Bitmask DP | |
| DP on Trees | |
| Digit DP | |
String Algorithms
| Concept | Status |
|---|---|
| String Matching | |
| Naive String Matching | |
| KMP (Knuth-Morris-Pratt) Algorithm | |
| Rabin-Karp Algorithm | |
| Z Algorithm | |
| String Processing | |
| String Rotation Check | |
| Anagram Detection | |
| All Anagrams in String | |
| Longest Common Prefix | |
| Group Anagrams | |
| Advanced String Topics | |
| Suffix Array | |
| Suffix Tree | |
| Manacher's Algorithm (Longest Palindrome) | |
Advanced Topics
| Concept | Status |
|---|---|
| Bit Manipulation | |
| Basic Bit Operations (AND, OR, XOR, NOT) | |
| Check if Number is Power of 2 | |
| Count Set Bits | |
| Brian Kernighan's Algorithm | |
| XOR Properties & Tricks | |
| Bit Masking Techniques | |
| Fast Exponentiation using Bits | |
| Advanced Data Structures | |
| Fenwick Tree (Binary Indexed Tree) | |
| Range Sum Queries using BIT | |
| Segment Tree with Lazy Propagation | |
| Sparse Table | |
| Square Root Decomposition | |
| Union Find (Disjoint Set) | |
| Basic Union Find Implementation | |
| Union by Rank Optimization | |
| Path Compression Optimization | |
| Applications in Graph Problems | |
| Mathematical Algorithms | |
| Sieve of Eratosthenes | |
| GCD and LCM | |
| Modular Arithmetic | |
| Fast Exponentiation | |
| Matrix Exponentiation | |
| Specialized Algorithms | |
| Binary Lifting | |
| LCA using Binary Lifting | |
| Mo's Algorithm | |
| Heavy-Light Decomposition | |