DSA 8-Week Learning Plan (Beginner to Intermediate)
Week 1: Basics of Programming & Arrays
- Day 1: Time & Space Complexity (Big O notation)
- Day 2: Arrays - Basics, Traversal, Input/Output
- Day 3: Array Insertion & Deletion
- Day 4: Linear Search, Binary Search
- Day 5: Practice Easy Array problems
- Day 6: Two Pointer Technique (Pair Sum, etc.)
- Day 7: Revision + Practice 3-5 questions
Week 2: Sorting Algorithms
- Day 8: Bubble Sort
- Day 9: Selection & Insertion Sort
- Day 10: Merge Sort
- Day 11: Quick Sort
- Day 12: Inbuilt Sort (Java/C++/Python)
- Day 13: Sorting based practice problems
- Day 14: Revision + Timed Practice
Week 3: Strings
- Day 15: String Basics & Functions
- Day 16: String Reversal, Palindrome
- Day 17: Count Vowels, Consonants, Frequency
- Day 18: Anagram, Substrings
- Day 19: String Problems on Leetcode
- Day 20: Pattern Matching (Naive, KMP)
- Day 21: Revision + Practice
Week 4: Hashing & STL
- Day 22: Hash Tables, Hash Maps
- Day 23: Frequency Counting using HashMap
- Day 24: Set, Unordered Set, Map basics
- Day 25: Practice problems (2 Sum, Majority Element)
- Day 26: Count Distinct Elements
- Day 27: HashMap-based string problems
- Day 28: Revision
Week 5: Recursion & Backtracking
- Day 29: Recursion Basics
- Day 30: Factorial, Fibonacci using Recursion
- Day 31: Backtracking Concept
- Day 32: N-Queen Problem
- Day 33: Rat in a Maze, Sudoku Solver
- Day 34: Practice Recursive Problems
- Day 35: Revision
Week 6: Stack & Queue
- Day 36: Stack using Array/List
- Day 37: Infix to Postfix, Valid Parentheses
- Day 38: Queue and Circular Queue
- Day 39: Deque, Priority Queue
- Day 40: Stack & Queue Problems
- Day 41: Real-life Applications
- Day 42: Revision + Practice
Week 7: Linked List
- Day 43: Singly Linked List - Create, Traverse
- Day 44: Insert/Delete in Linked List
- Day 45: Reverse a Linked List
- Day 46: Detect Loop (Floyd's Algorithm)
- Day 47: Merge Two Sorted Lists
- Day 48: Doubly & Circular Linked List
- Day 49: Practice Questions
Week 8: Trees & Graphs (Intro)
- Day 50: Tree Basics, Binary Tree
- Day 51: Traversals - Inorder, Preorder, Postorder
- Day 52: Height, Diameter of Tree
- Day 53: Binary Search Tree (BST)
- Day 54: Graph Basics - Adjacency List
- Day 55: BFS, DFS
- Day 56: Practice + Final Revision
Daily Goal: Learn + Practice 3-5 questions per topic.
Weekend: Review + Mock Interview Practice