Skip to content

Here I'm sharing my Data Structures and Algorithm's journey topics wise.

Notifications You must be signed in to change notification settings

subham-paul/DSA_Supreme

Repository files navigation

Data Structures and Algorithms in C++

Welcome to the Data Structures and Algorithms in C++ repository! This repository is designed to provide you with a comprehensive understanding of various data structures, algorithms, and programming concepts using the C++ programming language. Whether you're a beginner or looking to refresh your knowledge, this repository has got you covered.

ezgif com-video-to-gif

This Github repository's questions are tracked every day by Google Sheet. It is beneficial for revision at any time any question and I update on this every day basis.

Here is my Data Structure and Algorithm Questions List.

Table of Contents

  1. Introduction to Data Structures and Algorithms

    • What are Data Structures and Algorithms?
    • Importance of Data Structures and Algorithms
    • Big O Notation and Time Complexity Analysis
  2. C++ Basics for DSA

    • Variables, Data Types, and Operators
    • Control Statements: if, else, switch
    • Loops: for, while, do-while
    • Functions and Scope
    • Arrays and Pointers in C++
  3. Recursion

    • Understanding Recursion
    • Base Case and Recursive Case
    • Recursion vs. Iteration
    • Examples of Recursive Algorithms
  4. Arrays and Strings

    • Introduction to Arrays
    • Array Manipulation and Searching
    • Introduction to Strings
    • String Manipulation and Searching
  5. Linked Lists

    • Singly Linked Lists
    • Doubly Linked Lists
    • Circular Linked Lists
    • Linked List Operations and Applications
  6. Stacks and Queues

    • Introduction to Stacks
    • Stack Operations and Applications
    • Introduction to Queues
    • Queue Operations and Applications
  7. Trees and Binary Trees

    • Introduction to Trees
    • Binary Tree Structure
    • Tree Traversal: Inorder, Preorder, Postorder
    • Binary Search Trees (BST)
    • AVL Trees
  8. Heaps and Priority Queues

    • Introduction to Heaps
    • Max Heaps and Min Heaps
    • Priority Queue Implementation
  9. Hashing

    • Introduction to Hashing
    • Hash Functions
    • Collision Resolution Techniques
    • Hash Maps
  10. Graphs

    • Introduction to Graphs
    • Graph Representation: Adjacency Matrix, Adjacency List
    • Graph Traversal: BFS, DFS
    • Shortest Path Algorithms: Dijkstra's, Bellman-Ford
  11. Sorting Algorithms

    • Bubble Sort
    • Selection Sort
    • Insertion Sort
    • Merge Sort
    • Quick Sort
    • Radix Sort
  12. Searching Algorithms

    • Linear Search
    • Binary Search
    • Interpolation Search
    • Hashing for Searching
  13. Dynamic Programming

    • Introduction to Dynamic Programming
    • Overlapping Subproblems and Optimal Substructure
    • Fibonacci Series using DP
    • Knapsack Problem
    • Longest Common Subsequence (LCS)
  14. Advanced Topics (Optional)

    • Trie Data Structure
    • Segment Trees
    • Disjoint Set Union (DSU)
    • Graph Algorithms: Topological Sort, Minimum Spanning Tree
  15. Tips for Coding Interviews

    • Problem-solving Strategies
    • Time Management
    • Commonly Asked Questions
  16. Object-Oriented Programming (OOP) Concepts

  • Classes and objects
  • Encapsulation, inheritance, and polymorphism
  • Abstraction and encapsulation
  • Object-oriented design principles
  1. Sliding Window Technique

    • Understanding sliding windows approach
    • Fixed size and variable size windows
    • Applications in various problems
  2. Bit Manipulation

    • Bitwise operators
    • Bit manipulation tricks
    • Applications in solving problems efficiently
  3. Appendix

    • Standard Template Library (STL) Overview
    • C++ Best Practices

Getting Started

  1. To get started with this repository, you can clone it using the following command:
git clone https://github.com/subham-paul/DSA_Supreme.git
  1. Navigate to the respective chapter's folder to find explanations and examples related to that topic.
  2. Each chapter's folder contains code samples, explanations, and sometimes exercises to practice what you've learned.
  3. Feel free to explore the code and modify it to deepen your understanding.

Contributing

Contributions to this repository are welcome! If you find any issues or want to improve the content, please feel free to submit a pull request.

Notes

Here I store my handwritten notes in this repository. Please check here: https://github.com/subham-paul/DSA_Supreme_Notes

License

This repository is licensed under the MIT License.

We hope this repository serves as a helpful guide on your journey to mastering Data Structures and Algorithms in C++. Happy coding! 🚀

SUBHAM PAUL

Connect Me: https://www.linkedin.com/in/subham-paul-india/

GitHub: https://github.com/subham-paul