Kyurious Minds Computer Academy C++ Data Structures and Algorithms (DSA)

Data Structures and Algorithms (DSA)

1. Introduction to DSA and Complexity Analysis

  • Importance of DSA in Problem Solving
  • Time Complexity
  •  
    • Big-O, Big-Theta, Big-Omega Notations
    • Best Case, Worst Case, Average Case Analysis
    • Complexity of Iterative and Recursive Algorithms
  • Space Complexity
  •  
    • Memory Usage in Recursive and Iterative Algorithms

2. Arrays

  • Introduction to Arrays
  •  
    • Static vs. Dynamic Arrays
    • Memory Allocation
  • Array Operations
  •  
    • Insertion, Deletion, Traversal
  • Searching in Arrays
  •  
    • Linear Search
    • Binary Search
  • 2D Arrays and Matrix Operations
  •  
    • Transpose, Addition, and Multiplication
  • Strings
  •  
    • Character Arrays and String Class in C++
    • String Manipulation (Concatenation, Substring, Reversal)
    • Pattern Matching (Naive Algorithm)

3. Linked Lists

  • Singly Linked List
    • Structure and Advantages
    • Insertion and Deletion Operations
  • Doubly Linked List
    • Structure and Traversals (Forward and Backward)
    • Insertion and Deletion Operations
  • Circular Linked List
    • Basics and Operations
  • Applications of Linked Lists
    • Merging Linked Lists
    • Finding Middle Element

4. Stacks and Queues

  • Stack
    • Concept and Applications
    • Implementation Using Arrays and Linked Lists
  • Queue
    • Concept and Applications
    • Implementation Using Arrays and Linked Lists
  • Circular Queue
    • Concept and Implementation
  • Priority Queue
    • Basics and Implementation

5. Trees

  • Binary Tree
    • Structure and Use Cases
    • Traversals (Preorder, Inorder, Postorder)
  • Binary Search Tree (BST)
    • Concept and Applications
    • Operations (Insertion, Deletion, Search)
  • Introduction to Advanced Trees
    • AVL Trees
    • Heaps

6. Graphs

  • Basics of Graphs
    • Representation (Adjacency Matrix/List)
    • Directed vs. Undirected Graphs
  • Graph Traversals
    • Breadth-First Search (BFS)
    • Depth-First Search (DFS)

7. Hashing

  • Basics of Hashing
    • Hash Functions and Applications
  • Collision Handling
    • Chaining
    • Open Addressing

8. Sorting Algorithms

  • Bubble Sort
  • Selection Sort
  • Merge Sort
  • Quick Sort

9. Searching Algorithms

  • Linear Search
  • Binary Search (Iterative and Recursive)

10. Dynamic Programming (DP)

  • Introduction to DP
  • Common DP Problems
    • Fibonacci Series
    • Knapsack Problem