DSA Roadmap

Basic Programming

Conditional Statement

Loops

Data Types and Variables

Jump Statements

Arrays and Strings

Basic iteration and operations

Sorting

Defining and Input

Bubble Sort

Selection Sort

Quick Sort

Insertion Sort

Merge Sort

Time and Space Complexity

2 Different Routes (Both need to taken at some point)

Algorithms

Data Structures (Pre req.)

Dynamic Programming

Greedy Algorithms

Array and Strings named algorithms

Tabulation

Backtracking

Questions

2SUM and 3SUM Questions

DNF Algorithm

Kadane's Algorithm

Moore's Voting algorithm (for k=2 and generalized)

KMP Algorithm

Generalized algorithms (i,e juggling, negative marking and so on...)

2 Dimensional DP

N Dimensional DP

1 Dimensional DP

Object Oriented Programming

Functions

Basic use of Functions

Recursion

Time and Space Complexities of recursion (Taylor's theorem)

How recursion works (Try to trace it manually)

Backtracking

Encapsulation and Abstraction

Polymorphism

Inheritance

Overloading

Inheritance

Access Specifiers

Recurssion

Class, methods and contructors

Overriding

Memoization

Data Structures

Stack and Queues

Binary Trees

Linked List

Graphs

Hare and Tortoise Algorithm

Merge Sort for Linked List

Types of Linkedlist

Class and Basic Operations

Tons of Questions

Implementation (using array and linked list)

Notations and interconversion (i.e prefix, infix and postfix)

Stack (LIFO)

Standard Problems (like largest histogram, rainwater trapping)

Queue (FIFO)

Stack using queue and vise-versa

Questions

DFS Traversal (preorder, inorder and postorder)

BFS Level order traversal

Class and methods

Common terms (Height, diameter, depth) calculations

Standard Questions (like LCA)

BST

Heaps

Condition for BST

Properties of BST (like inroder is sorted) and construction using inroder or other traversals.

Insertion and deletion

Balancing BST

Standard questions (like flatting a BST)

Heapify Algorithm

Heap Sort

Implementation and array equivalence

Questions

Condition for Heaps

BFS

Cycle Detection using DFS and BFS

DFS

Standard Questions (like min moves by knight, wired connections)

Intro and Representations (Adjacency List, Adjacency matrix)

Named Algorithms

Dijkstra's Algorithm

MST using Prims Algorithm

Topological Sort

MST using Kruskal's Algorithms (also learn DSU)

Bellman Ford Algorithm

Floyd Warshall Algorithm