Data Structures and Algorithm
A computer program is a collection of instructions to perform a specific task. For this, a computer program may need to store data, retrieve data, and perform computations on the data.
A data structure is a named location that can be used to store and organize data. And, an algorithm is a collection of steps to solve a particular problem. Learning data structures and algorithms allow us to write efficient and optimized computer programs.
PREREQUISITES 🧳
Proficiency in any programming language is a must as it will ease most of your problems when it comes to implementation. Be it C++, Java, Python, or any language of your choice.
TOPICS TO LEARN 📖
- Asymptotic Analysis 
- Arrays and Lists 
- 2D Arrays 
- Functions 
- Strings 
- Linked List 
- Stack 
- Queue 
- Hash Table and Hash Set 
- Heap 
- Divide and Conquer Algorithm 
- Graph - BFS
- DFS
- Prim’s Algorithm
- Dijkstra’s Algorithm
 
- Binary Tree 
- Binary Search Tree 
- Trie 
- Searching 
- Backtracking - Rat in a maze
- N Queen Problem
- Sudoku Problem
 
- Greedy Algorithm - Fractional Knapsack
- Huffman coding
 
- Sorting Techniques - Heap sort
- Merge sort
- Quick sort
- Bubble sort
 
Online Courses 💻
Tutorials 💡
Blogs 📝
Books 📚
- Introduction to Algorithms by Thomas H Cormen
- Algorithms by Robert Sedgewick & Kevin Wayne
- The Algorithm Design Manual by Steve S. Skiena
- Algorithm Design by Kleinberg & Tardos
- Data Structures and Algorithms. Aho, Ullman & Hopcroft
- Classic Data Structure by Debasis Samanta
GitHub Repos
Youtube Channels
✌️ That’s it. You’re done!! ⛳ Update all your works in github. Happy Learning


