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