This repository contains C++ implementations of Data Structures & Algorithms (DSA).
I am following the Striverโs DSA playlists from the takeUforward YouTube channel.
The goal is to learn, implement, and practice all fundamental and advanced DSA concepts in C++.
- Arrays & Strings
- Recursion & Backtracking
- Time & Space Complexity
- Binary Search (and its variants)
- Sorting Algorithms (Merge Sort, Quick Sort, etc.)
- Stack & Queue
- Linked List (Singly, Doubly, Circular)
- Hashing
- Heap & Priority Queue
- Disjoint Set (Union-Find)
- Binary Tree
- Binary Search Tree (BST)
- Segment Tree
- Trie
- Graph Representation
- BFS & DFS
- Shortest Path Algorithms (Dijkstra, Bellman-Ford, Floyd Warshall)
- Minimum Spanning Tree (Kruskal, Prim)
- Topological Sorting
- Classical DP Problems
- Knapsack Variants
- DP on Subsequences / Strings / Grids
- DP with Bitmasking
- Greedy Algorithms
- Divide & Conquer
- Backtracking Problems
- Sliding Window & Two Pointers
- Binary Search on Answer
Here are the official playlists I am following:
| Playlist Title | Description |
|---|---|
| C++ Basics in One Shot | Covers all C++ fundamentals in a single go |
| Arrays & Strings | Array problems and string manipulations |
| Recursion & Backtracking | Covers recursion and classic backtracking Qs |
| Binary Search Playlist | Binary search and all its advanced problems |
| Sorting Algorithms | Merge Sort, Quick Sort, Counting Sort, etc. |
| Linked List | Covers singly, doubly, and circular lists |
| Stack & Queue | Implementation + problems |
| Binary Trees | Traversals, diameter, height, LCA, etc. |
| Binary Search Trees (BST) | BST operations and related problems |
| Graph Algorithms | BFS, DFS, shortest paths, MST, topo sort |
| Dynamic Programming | Classical & advanced DP problems |
| Greedy Algorithms | Greedy approach-based problems |
โ๏ธ Strengthen problem-solving skills
โ๏ธ Practice competitive programming
โ๏ธ Build a strong foundation for technical interviews