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 |