DSA Roadmap for mastering data structure and algorithm in 2022
The data structure is the foundation of any programming language. In this case, we are talking about the data structure that stores information about the cannabis plant. This includes the genetic code, the physical characteristics of the plant (height, width, color), and other pertinent information. (dsa roadmap)
Algorithms are the roadmaps that guide us through our journey toward solving problems. They can be used to solve many different types of problems, but they are especially useful for finding solutions to complex problems. In this case, the problem being solved is how to store and retrieve information about the cannabis plant efficiently.
The data structure is the way data is stored in memory. This can be done using different types of data structures. A simple example would be arrays. An array is a list of items where each item has a specific position. Arrays are used for storing large amounts of data. They are easy to use but have some limitations.
Linked lists are similar to arrays except that they allow multiple values at each index. Linked lists are good for storing ordered data like names or addresses.
Trees are a type of linked list where each node contains a value and pointers to its children. Nodes without any children are called leaves. Trees are great for organizing information since they can be searched efficiently.
Graphs are a form of the tree where nodes contain other nodes instead of just values. These are commonly used for representing networks.
Binary trees are a special kind of tree where only two possible outcomes exist at each level of the tree. These are often used for sorting.
Heaps are a data structure that uses less space than binary trees but requires more time to search.
DSA Roadmap 2022
Learn a Language--
C++/Java/Python
Resources--
C++ :
Java :
Data Structures--
- Arrays
- String
- Time & Space Complexity
- Searching (Linear/Binary)
- Sorting (Selection/Bubble/Insertion/Merge/Quick/Heap Sort)
- Stack
- Queue
- Linked List (Single/Doubly)
- Hashing
- Recursion
- Backtracking
- STL for C++ or Java collections for Java
- Tree & Binary Search Tree
- Heap/ priority queue
- Graph
- Dynamic programming
Resources--
A) C++ STL--
Topics--
1) Vector
2) Stack
3) Set
4) Map
5) unordered_set
6) unordered_map
7) pair
8) queue
9) deque
10) list
11) Binary Search/lower_bound/upper_bound
11) Custom Comparator
12) __builtin_popcount()
13) next_permutation()
14) *max_element()
15) priority queue
Resources--
B) Java Collections--
Algorithms--
1) Number Theory--
a) Fibonacci Series/Number
b) Prime
c) Sieve of Eratosthenes
d) Segmented Seive
e) GCD & Euclid's Algorithm
f) Fast Modulo Exponentiation
g) multiplicative modulo inverse
h) fermat's little theorem
2) Sorting Algorithms--
a) Selection Sort
b) Bubble Sort
c) Insertion Sort
d) Quick Sort
e) Merge Sort
f) Heap Sort
3) Searching--
a) Linear Search
b) Binary Search
4) Recursion & Backtracking--
a) Basic Question
b) Fibonacci Recursion
c) Tower of Hanoi
d) Generate Brackets Recursion
e) Knapsack Recursion
f) Phone Keypad Problem
g) Rat in a maze
h) N-Queen Problem
i) Sudoku Problem
5) Greedy
6) Graph Algorithms--
a) BFS
b) DFS
c) Directed Graph
d) Undirected Graph
e) Disjoint Set Union
f) Minimum Spanning Tree (kruskal's Algo, Prim's Algo)
g) Shortest Path (Dijkstra's Algo, Bellman Ford,
Floyd-Warshall)
h) Cycle Detection
i) Topological Sort / DAG
j) Kosaraju’s Algo
k) Connected components / Strongly Connected Comp
l) Eular Tour
m) Articulation Point and Bridge
n) LCA
7) DP--
Algorithm Resources--
Problem Solving Skills--
LeetCode = https://leetcode.com/
GFG Practice Site = http://bit.ly/2KEp2WJ
A2OJ = http://bit.ly/38yRgua
Hackerrank = http://bit.ly/3rvG0XQ
cc-Subscribe to the channel = https://bit.ly/3fBvYkf
0 Comments