🔹 Introduction to Data Structures & Algorithms
Importance of DSA in Problem Solving
Time & Space Complexity (Big-O Notation)
Recursion & Backtracking Basics
🔹 Arrays & Strings
Introduction to Arrays & Memory Allocation
Operations on Arrays (Insertion, Deletion, Searching, Sorting)
Two Pointer Technique
Sliding Window Technique
String Manipulation & Pattern Matching (KMP Algorithm, Rabin-Karp)
🔹 Linked List
Introduction to Linked List
Types of Linked List (Singly, Doubly, Circular)
Operations (Insertion, Deletion, Reversal)
Floyd’s Cycle Detection Algorithm
🔹 Stacks and Queues
Stack (Using Arrays & Linked List)
Applications of Stack (Infix to Postfix, Parenthesis Matching)
Queue & Deque Implementation
Priority Queue
🔹 Recursion & Backtracking
Recursion Basics & Call Stack
Backtracking Approach (Sudoku Solver, N-Queens Problem)
🔹 Sorting & Searching Algorithms
Bubble Sort, Selection Sort, Insertion Sort
Merge Sort, Quick Sort
Binary Search & Variations
🔹 Trees & Binary Search Tree (BST)
Introduction to Trees & BST
Traversal Techniques (Inorder, Preorder, Postorder, Level Order)
BST Operations (Insertion, Deletion, Searching)
AVL Tree
🔹 Graphs
Graph Representation (Adjacency Matrix & List)
BFS (Breadth First Search) & DFS (Depth First Search)
Shortest Path Algorithms (Dijkstra, Floyd-Warshall)
Minimum Spanning Tree (Kruskal, Prim’s Algorithm)
🔹 Dynamic Programming (DP)
Introduction to DP & Memoization
Common DP Problems (Knapsack, Longest Common Subsequence, LIS)
Matrix Chain Multiplication
🔹 Competitive Programming Practice
Problem Solving on Platforms (LeetCode, CodeChef, HackerRank)
Weekly Coding Challenges