DSA is one of the most important field of study in computer science.
However, learning DSA can be hard, expecially when you are just starting to learn coding.
This repository contains topic wise folders which has programs on various data structures and algorithms, which are further divided into folders of different language codes.
The purpose of making this repository was to document my progress so that anyone else who is just starting off like when I was, is able to benefit from my plans.
Codes are added to this repo regularly.
The repo has folders which has codes about problems specific to that topic of DSA.
A person can read these codes, and understand how they are working.
Each code file has proper comments at the top of the file, which explains the problem.
It is recommended that a person first tries to solve these problems on their own on some online IDE before reading the solution.
The code files are well documented.
The Extras folder folder contains codes of problems which I found seperately interesting to solve. The level of these problems are higher and can be used as a challenge by anyone to solve. Although they just make use of strong understanding of the basics.
A folder called Patterns also exist. It contains questions based on pattern printing. These questions are available in Java and Cpp and are excellent for the understanding of control flow and building logic and concepts. It is advised that these questions should be solved prior to start learning DSA.
The following is the suggested learning plan for people who are just starting off to learn DSA.
- Stacks
- Queues
- Tree
- Binary search tree
- Heaps
- Graphs
- Recursion and Backtracking
- Dynamic Programing
- Graph algorithms
- Trie
- Segment tree
- Disjoint set