DSA C++ Syllabus
| Topic | Subtopics / What to Cover |
|---|---|
| C++ Basics | Input / Output Data types Loops Functions |
| Time & Space Complexity | Big-O notation ⭐ Best, Average, Worst case ⭐ Common complexity classes ⭐ |
| Arrays | Traversal ⭐ Insertion & Deletion ⭐ Prefix Sum ⭐ Sliding Window ⭐ Two Pointer ⭐ |
| Strings | String traversal ⭐ Palindrome check ⭐ Substring problems ⭐ Pattern matching basics |
| Recursion | Base case & recursive relation ⭐ Stack memory ⭐ Recursion tree |
| Backtracking | Subsets ⭐ Permutations ⭐ N-Queens ⭐ Sudoku Solver |
| Linked List | Singly Linked List ⭐ Doubly Linked List Reverse Linked List ⭐ Cycle detection ⭐ |
| Stack | Stack using array ⭐ Stack using linked list Applications (Next Greater Element) ⭐ |
| Queue | Simple Queue ⭐ Circular Queue ⭐ Deque ⭐ |
| Hashing | Hash table concept ⭐ unordered_map / unordered_set ⭐ Frequency problems ⭐ |
| Searching | Linear Search Binary Search ⭐ Lower/Upper Bound ⭐ |
| Sorting | Bubble, Selection, Insertion Merge Sort ⭐ Quick Sort ⭐ |
| Two Pointer & Sliding Window | Fixed window ⭐ Variable window ⭐ Two pointer patterns ⭐ |
| Greedy Algorithms | Activity Selection ⭐ Fractional Knapsack ⭐ Interval scheduling |
| Trees | Binary Tree traversal ⭐ Binary Search Tree ⭐ Height & Diameter ⭐ |
| Heaps | Min Heap ⭐ Max Heap ⭐ Priority Queue ⭐ |
| Graphs | BFS ⭐ DFS ⭐ Connected Components ⭐ |
| Graph Algorithms | Topological Sort ⭐ Dijkstra ⭐ Minimum Spanning Tree ⭐ |
| Dynamic Programming | 1D DP ⭐ 2D DP ⭐ Knapsack ⭐ LCS ⭐ |
| Bit Manipulation | Bitwise operators ⭐ Set/Clear bit ⭐ XOR properties ⭐ |
| Interview Patterns | Kadane’s Algorithm ⭐ Majority Element ⭐ Fast & Slow Pointer ⭐ |