This repository documents my journey of learning cpp and Data Structures and Algorihtms
100+ C++ Programs implemented
Complete DSA Coverage from basics to advanced
Graph Algorithms including Articulation Points
Operating System Concepts with practical implementations
STL Mastery with real-world applications
Pattern Programming for logical skill development
Competitive Programming Solutions from LeetCode and CodeStudio
Dynamic Programming implementations with multiple approaches
Real Problem-Solving experience with popular coding platforms Start with Basic/ folder - Master C++ fundamentals
2. Practice patterns/ - Develop logical thinking
3. Learn OOPS/ concepts - Object-oriented programming
- Explore
Arrays/operations - Master
Search/algorithms - Understand
Standard Template Library/ - Try problems in
CODESTUDIO/Vector/for practical application
- Implement
Tree/data structures - Study
CPU scheduling/algorithms - Master Graph algorithms (
Lecture 85,Lecture 99) - Solve Dynamic Programming problems (
CODESTUDIO/Dynamic Programming/,LeetCode/) - Practice complex problems in
Exam/folder
- Explore competitive programming solutions in
LeetCode/andCODESTUDIO/ - Apply learned concepts to solve real-world problemsem solutions from:**
LeetCode: Sainava's Profile - Solutions available in LeetCode/ folder
CodeStudio/Coding Ninjas: Sainava's Profile - Solutions available in CODESTUDIO/ folder
Note: Missing lecture numbers correspond to practice sessions on these platforms. The actual solutions from these sessions are now included in the respective folders.U Scheduling Algorithms
- First Come First Serve (FCFS)
- Shortest Job First (SJF) - Preemptive & Non-Preemptive
- Priority Scheduling - Preemptive & Non-Preemptive
- Round Robin with Time Quantum
- Round Robin Dispatcher
- Banker's Algorithm Implementation
- Resource Allocation & Safety Algorithms
- Dynamic Programming:
- Fibonacci Number Implementation
- Ways to Reach Nth Stairs
- Vector Operations:
- Sort 0, 1, 2 (Dutch National Flag Problem)
- Problem #746: Min Cost Climbing Stairs
- Dynamic Programming: Various DP solutions and approaches
These sections contain real problem solutions from popular coding platforms, demonstrating practical application of DSA concepts.es and Algorithms implementations in C++. It covers everything from basic C++ fundamentals to advanced graph algorithms, with lecture-wise organized content and practical implementations.
Learning-DSA-in-CPP/
β
βββ Basic/ # C++ Fundamentals & Programming Basics
βββ OOPS/ # Object-Oriented Programming Concepts
βββ patterns/ # Pattern Programming (7 different patterns)
βββ Arrays/ # Array Operations & Algorithms
βββ Search/ # Searching Algorithms (Linear, Binary, etc.)
βββ Standard Template Library/ # STL Containers & Algorithms
βββ Tree/ # Tree Data Structure Implementation
βββ CPU scheduling/ # Operating System Scheduling Algorithms
βββ Bankers_Algo/ # Banker's Algorithm for Deadlock Avoidance
βββ Exam/ # Practice Problems & Exam Questions
β
βββ CODESTUDIO/ # CodeStudio/Coding Ninjas Problems
β βββ Dynamic Programming/ # DP Problems (Fibonacci, Stairs)
β βββ Vector/ # Vector-based Problems (Sort 0,1,2)
β
βββ LeetCode/ # LeetCode Problem Solutions
β βββ Dynamic Programming/ # DP Problems from LeetCode
β
β
βββ Lecture 20-26/ # Foundation Lectures
βββ Lecture 33-36/ # Intermediate Concepts
βββ Lecture 44-48/ # Advanced Data Structures
βββ Lecture 54-62/ # Trees, Queues & Advanced Topics
βββ Lecture 69-99/ # Graphs, Heaps & Complex Algorithms
β
βββ README.md # This fileData Types, Variables, and Operators
Loops and Conditional Statements
Functions (Pass by Value & Reference)
Bitwise Operations & Number Systems
Prime Numbers & Mathematical Functions
Fibonacci Series & Power Functions
7 Different Pattern Types Star Patterns, Number Patterns Pyramid and Diamond Patterns
Classes & Objects
4 Pillars of OOP
Inheritance & Polymorphism
Encapsulation & Abstraction
- Containers: Vectors, Sets, Maps, Stacks, Queues
- Algorithms: Sorting, Searching, STL Functions
- Iterators & Custom Comparators
- Linear Search Implementation
- Binary Search & Variations
- Square Root using Binary Search
- Aggressive Cows Problem
- Book Allocation Problem
- Array Operations & Manipulations
- Array Reversal & Rotation
- Sum Calculations & Updates
- Pivot Finding Algorithms
- Tree Creation & Traversal
- Binary Trees Implementation
- Tree Algorithms & Operations
- Queue using STL
- Queue using Linked Lists
- Custom Queue Implementations
- Heap Implementation
- Priority Queue Operations
- Heap Sort Algorithm
- BFS (Breadth-First Search)
- DFS (Depth-First Search)
- Graph Representation & Traversal
- Articulation Points Detection
- Tarjan's Algorithm Implementation
- Graph Theory Applications
- First Come First Serve (FCFS)
- Shortest Job First (SJF) - Preemptive & Non-Preemptive
- Priority Scheduling - Preemptive & Non-Preemptive
- Round Robin with Time Quantum
- Round Robin Dispatcher
- Banker's Algorithm Implementation
- Resource Allocation & Safety Algorithms
For additional practice problems and coding challenges, check out:
LeetCode: Sainava's Profile
CodeStudio/Coding Ninjas: Sainava's Profile
Note: Missing lecture numbers correspond to practice sessions on these platforms.
Make sure you have a C++ compiler installed:
- GCC (Linux/MacOS)
- Clang (MacOS/Linux)
- MSVC (Windows)
- MinGW (Windows)
To compile any C++ file, use:
# Basic compilation
g++ filename.cpp -o output_name
# With debugging symbols
g++ -g filename.cpp -o output_name
# With C++11/14/17 standard
g++ -std=c++17 filename.cpp -o output_name
# Run the compiled program
./output_name# Navigate to any lecture folder
cd "Lecture 99"
# Compile and run
g++ Articulation_points.cpp -o articulation
./articulation- Start with
Basic/folder - Master C++ fundamentals - Practice
patterns/- Develop logical thinking - Learn
OOPS/concepts - Object-oriented programming
- Explore
Arrays/operations - Master
Search/algorithms - Understand
Standard Template Library/
- Implement
Tree/data structures - Study
CPU scheduling/algorithms - Master Graph algorithms (
Lecture 85,Lecture 99) - Practice complex problems in
Exam/folder
100+ C++ Programs implemented
Complete DSA Coverage from basics to advanced
Graph Algorithms including Articulation Points
Operating System Concepts with practical implementations
STL Mastery with real-world applications
Pattern Programming for logical skill development
Feel free to:
- Suggest improvements
- Add more algorithms or optimizations
- Submit pull requests
GitHub: @Sainava
Repository: Learning-DSA-in-CPP
If this repository helped you learn DSA, please give it a star!