Data Structures & Algorithms Roadmap
Pick a Language
JavaScript
Python
Java
C++
C#
Ruby
GO
Rust
Programming Fundamentals
Language Syntax
Control Structures
Functions
OOP Basics
Pseudo Code
Data Structures
Data Structures
Basic Data Structures
Arrays
Linked Lists
Stacks
Queues
Hash Tables
Algorithmic Complexity
Time and Space Complexity
Common Runtimes
Asymptotic Notation
Extra Topics
Sorting Algorithms
Bubble Sort
Selection Sort
Insertion Sort
Merge Sort
Quick Sort
Heap Sort
Counting Sort
Radix Sort
Bucket Sort
Searching Algorithms
Linear Search
Binary Search
Jump Search
Interpolation Search
Exponential Search
Recursion
Introduction
Recursion Techniques
Recursion Problems
Tree Data Structures
Introduction
Tree Traversals
Search Algorithms
Tree Problems
Graph Data Structures
Introduction
Search Algorithms
Shortest Path Algos
Minimum Spanning Tree
Advanced Data Structures
Trie
Segment Trees
Fenwick Tree
Suffix Tree
Bloom Filter
Skip List
Disjoint Set (Union-Find)
Complex Data Structures
B/B+ Trees
Skip List
ISAM
2-3 trees
Indexing
Introduction
Linear Indexing
Tree-Based Indexing
Problem Solving Techniques
Brute Force
Greedy Algorithms
Divide and Conquer
Dynamic Programming
Backtracking
Branch and Bound
Randomized Algorithms
Recursion
Bit Manipulation
Two Pointers
Sliding Window
Platforms for Practice
LeetCode
HackerRank
Codeforces
AtCoder
TopCoder
CodeChef
SPOJ
Project Euler