Data Structures & Algorithms Tutorial
Start learning Data Structures & Algorithms →
Course Contents
DSA Fundamentals
- Data Structures and Algorithms Introduction
- Why Algorithms Matter
- Time Complexity and Big O Notation
- Space Complexity
- Best, Average, and Worst Case Analysis
- Setting Up: Python for DSA
Arrays and Strings
- Arrays (Python Lists) Explained
- Array Traversal and Manipulation
- Two-Pointer Technique
- Sliding Window Technique
- String Manipulation Basics
- Prefix Sums
Searching Algorithms
Sorting Algorithms
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Comparing Sorting Algorithms
- Python’s Built-in Sort (Timsort)
Linked Lists
- Singly Linked Lists
- Doubly Linked Lists
- Linked List Traversal and Insertion
- Reversing a Linked List
- Detecting a Cycle (Floyd’s Algorithm)
- Linked Lists vs Arrays
Stacks and Queues
- Stacks Explained
- Implementing a Stack in Python
- Queues Explained
- Implementing a Queue in Python
- Deques (Double-Ended Queues)
- Monotonic Stacks
Hashing
- Hash Tables Explained
- Python Dictionaries as Hash Maps
- Handling Hash Collisions
- Sets and Their Uses
- Solving Problems with Hash Maps
Trees
- Binary Trees Explained
- Tree Traversal: Inorder, Preorder, Postorder
- Level-Order Traversal (BFS)
- Binary Search Trees
- BST Insertion, Search, and Deletion
- Balanced Trees and AVL Basics
- Tries (Prefix Trees)
Heaps and Priority Queues
- Heaps Explained
- Min-Heap vs Max-Heap
- Python’s heapq Module
- Priority Queues in Practice
- The Top-K Elements Pattern
Graphs
- Graph Representations
- Breadth-First Search (BFS)
- Depth-First Search (DFS)
- Detecting Cycles in a Graph
- Topological Sort
- Dijkstra’s Shortest Path Algorithm
- Union-Find (Disjoint Set)
Recursion and Backtracking
- Recursion Fundamentals
- The Call Stack and Recursion
- Recursion vs Iteration
- Backtracking Explained
- Permutations and Combinations
- N-Queens and Classic Backtracking Problems
Dynamic Programming
- Dynamic Programming Introduction
- Memoization (Top-Down DP)
- Tabulation (Bottom-Up DP)
- The Fibonacci and Climbing Stairs Patterns
- The Knapsack Problem
- Longest Common Subsequence
- DP on Grids
Greedy Algorithms
- Greedy Algorithms Explained
- Activity Selection Problem
- Interval Scheduling and Merging Intervals
- When Greedy Fails: Greedy vs DP
Advanced Techniques
- Divide and Conquer
- Bit Manipulation Basics
- Matrix Traversal Patterns
- Fast and Slow Pointers
- Merge Intervals and Overlapping Ranges
