Skip to content

A roadmap to mastering Data Structures & Algorithms in C++ πŸ’». Includes notes πŸ“š, code examples πŸ’‘, practice problems 🧩, and resources πŸ“Ž to guide your learning journey.

Notifications You must be signed in to change notification settings

rutaganda-salim/dsa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Data Structures & Algorithms Learning Roadmap

This repository is a personal project to document my journey of learning Data Structures and Algorithms (DSA) with C++.

πŸ“š Learning Goals

  • Master core data structures such as Arrays, Linked Lists, Stacks, Queues, Trees, Graphs, Heaps, and Hashing.
  • Learn the fundamental algorithms like Sorting, Searching, Dynamic Programming, Greedy Algorithms, Divide and Conquer, and Backtracking.
  • Focus on problem-solving through continuous practice on platforms like Leetcode, Codeforces, GeeksforGeeks, and HackerRank.
  • Build a solid understanding of advanced data structures like Segment Trees, Tries, and Suffix Trees.
  • Implement optimization techniques for time and space complexity to solve problems efficiently.

πŸ“ Progress Tracker

The learning process is broken down into bite-sized topics and practice exercises. Each topic will be completed in a progressive manner, ensuring a thorough understanding of every concept. You can track my progress in the Progress Tracker document, which provides a checklist of topics to cover.

πŸ”§ Repo Structure

The structure of this repository is organized to reflect the stages of my learning:

  • PROGRESS-TRACKER.md: A detailed list of topics to learn and track.
  • CONTRIBUTING.md: Information about contributing (This repo is for personal use, so contributions are not being accepted).
  • Code Implementations: Each topic will have a folder with C++ implementations, explanations, and problem-solving strategies.

πŸš€ Topics Covered

This repository will cover a wide range of topics in DSA, including:

  1. Arrays and Strings
  2. Linked Lists
  3. Stacks and Queues
  4. Trees
  5. Graphs
  6. Heaps and Priority Queues
  7. Hashing
  8. Dynamic Programming
  9. Backtracking
  10. Divide and Conquer
  11. Greedy Algorithms
  12. Advanced Data Structures
  13. Bit Manipulation
  14. Math and Number Theory
  15. String Algorithms
  16. Computational Geometry
  17. Miscellaneous Topics

For detailed topics and concepts, refer to the Progress Tracker.

πŸ† Problem Solving Practice

To reinforce the learning, I will regularly solve problems from the following platforms:

  • Leetcode: For core DSA problems and interview-focused questions.
  • Codeforces: For competitive programming and algorithmic challenges.
  • HackerRank: For hands-on practice with problems across various domains.
  • GeeksforGeeks: For in-depth DSA problems and tutorials.
  • InterviewBit: For interview-style problems and challenges.
  • CodeChef: For regular contests and long challenges.

πŸ› οΈ How to Use

1. Track Your Progress

As you work through the topics, update the Progress Tracker by marking the topics you've completed.

2. Explore Code Implementations

Each topic will have a folder containing C++ code implementations for various problems. Make sure to check the explanations and improve your understanding by experimenting with the code.

3. Participate in Problem Solving

Solve the problems on the mentioned platforms to practice and improve your coding and problem-solving skills.

🀝 Contributing

This repository is for personal use only, and I am not currently accepting contributions. However, feel free to use the content and structure to guide your own learning journey.

If you find any mistakes or areas for improvement, you can open an issue to discuss it.

πŸ“… Learning Timeline

While this is a personal project, I have set an initial timeline of 6 months to complete the major topics, followed by ongoing problem-solving practice for interview preparation. The timeline may vary based on progress and learning pace.

πŸ–‹οΈ License

This repository is licensed under the MIT License.


Happy learning! Let's master DSA #competitive programming πŸ’ͺ

About

A roadmap to mastering Data Structures & Algorithms in C++ πŸ’». Includes notes πŸ“š, code examples πŸ’‘, practice problems 🧩, and resources πŸ“Ž to guide your learning journey.

Topics

Resources

Stars

Watchers

Forks

Languages