Comprehensive repository for mastering Data Structures and Algorithms (DSA) in C++. This repo is organized in a structured, folder-first way so you can learn topic by topic, read full implementations, and revise later without losing the roadmap.
Repository focus:
- C++ implementations of data structures and algorithms
- A structured learning path (topics, labs, assignments, revision)
- Code you can study deeply and run locally
This repo is useful if you are:
- learning DSA from scratch in C++
- preparing for interviews and want clean topic-wise practice
- looking for implemented data structures you can read and analyze
- a developer who wants to contribute improvements or new topics
If you only open one folder, start here:
Data Structures and Algorithms: https://github.com/saqibbedar/dsa/tree/main/Data%20Structures%20%26%20Algorithms
Recommended way to use this repo:
- Pick one topic folder inside
Data Structures & Algorithms - Read the implementation and trace the logic
- Run the code locally
- Modify or extend the code (add operations, add tests, refactor)
- Move to the next topic
Tip: Don’t jump across topics randomly. Go one folder at a time and keep notes.
Main folders you will use:
Path: Data Structures & Algorithms/
This is the main content folder. Topics are organized into separate directories, for example:
- LinkedList
- Stack
- Queue
- Priority-Queue
- Binary Search Tree
- Sorting Algorithms
- Recursion
- Iterators
Direct link: https://github.com/saqibbedar/dsa/tree/main/Data%20Structures%20%26%20Algorithms
Path: Assignments/
Coursework-style assignments for practice and reinforcement.
Path: DSA Friday Lab/
Lab-style practice content. Good for building consistency and speed.
Path: Quick C++ Revision/
A compact revision area for C++ basics that are important for DSA (pointers, references, templates, STL basics).
Path: Past Pappers/
Past-paper style material for revision and exam-style practice.
Path: docker-guide/
Notes and guidance related to using Docker for a consistent environment.
Files like NOTES.yaml and various about-this-folder.yaml files are included to keep the repo navigable and structured.
This repository contains multiple independent topic folders. Most files are designed to compile and run individually.
Typical compile and run commands:
g++ -std=c++17 file.cpp -o app
./appIf a folder contains multiple .cpp files that depend on each other, compile them together:
g++ -std=c++17 main.cpp other.cpp -o app
./appIf you run into missing includes or name collisions, compile one folder at a time.
Contributions are welcome. If you are a developer, you can help by:
- fixing bugs
- improving code clarity and naming
- adding missing operations and edge case handling
- adding new topics in the same structured style
- adding small test drivers or usage examples
Contribution guidelines are available here:
Contribute/CONTRIBUTE.yaml
General flow:
- Fork the repository
- Create a new branch
- Make changes and test them
- Open a pull request with a clear description
This repo focuses on DSA. If you want more C++ fundamentals before going deep into DSA, you can also explore:
- C++ basics and pointers:
saqibbedar/CPlusPlusLearningHub - OOP notes:
saqibbedar/Cpp-OOP-Notes
MIT License. See LICENSE.