DSA (Data Structures and Algorithms)

 

🔹 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