- Sorting and Searching Algorithms
- Sorting Techniques: Bubble Sort, Merge Sort, Quick Sort
- Searching Techniques: Linear Search, Binary Search
- Analysis of Time Complexity for Sorting and Searching
- Practical Applications
- Dynamic Programming and Recursion
- Fundamentals of Recursion: Concept, base case, and recursive relations
- Introduction to Dynamic Programming: Overlapping subproblems and memoization
- Solving classic DP problems: Fibonacci series, 0/1 Knapsack
- Problem-solving exercises
- Trees
- Basics of Trees: Binary Trees, Binary Search Trees
- Tree Traversal Methods: In-order, Pre-order, Post-order, Level-order
- Applications of Trees: Expression Trees, Decision Trees
- Hands-on Practice
- Graphs
- Introduction to Graphs: Types, Terminologies
- Graph Representation: Adjacency Matrix, Adjacency List
- Basic Graph Algorithms: BFS, DFS
- Real-world Applications
- Introduction to Linked Lists: Singly, Doubly, and Circular Linked Lists
- Operations: Insertion, Deletion, Traversal, Reversal
- Real-life applications of Linked Lists
- Hands-on Problems
- Stacks and Queues
- Understanding Stacks: LIFO operations, applications
- Understanding Queues: FIFO operations, types of queues
- Implementation using Arrays and Linked Lists
- Practical Problems
- Overview of Arrays: Definition, operations, and use cases
- Common Array Problems
- Introduction to Strings: Basic operations and pattern matching
- Practical Exercises
- Basics of Data Structures and Algorithms
- Introduction to Data Structures and Algorithms
- Importance of DSA in problem-solving and coding interviews
- Types of Data Structures: Linear vs. Non-linear
- Time Complexity and Space Complexity: Big O Notation