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