Data Structures and Algorithms Online Course
Data Structures and Algorithms: The Complete Masterclass
With the knowledge of data structures and algorithms at your fingertips, you can write efficient computer programs to solve real-world problems. This course will help you to get up and running with data structures and algorithms in no time.
The course starts by explaining the concepts of complexity analysis and big O notation. Next, you will become familiar with the concepts of memory and logarithms. Moving along, you will get a solid understanding of data structure concepts, such as arrays, linked lists, stacks, queues, hash tables, trees, heaps, and graphs. Next, you will understand what recursion is and get to grips with a variety of basic and advanced algorithms, such as searching, sorting elementary, sorting advanced, tree traversal, and graph traversal. Towards the end, you will go through a set of interview questions that will enhance your knowledge of data structures and algorithms and prepare you for job interviews.
By the end of this course, you will have gained exceptional knowledge of data structure and algorithms and will have developed skills to apply in the real world.
Course Curriculum
Course Introduction
- Course Introduction
- Curriculum Walkthrough
Big O Notation
- Section Introduction
- Complexity Analysis
- Why We Need Big O Notation?
- Big O(n) Complexity
- Big O(1) Complexity
- Counting Operations
- Simplifying Big O - Part 1
- Big O(n^2) Complexity
- Simplifying Big O - Part 2
- Big O(n!) Complexity
- Space Complexity – Part 1
- Space Complexity – Part 2
- Section Summary
Essential Concepts - I
- Memory
- Logarithm
Data Structure - Introduction
- Introduction to Data Structures
Data Structure - Arrays
- Array Introduction
- Array - Common Operations – Part 1
- Array - Common Operations – Part 2
- Static versus Dynamic Array - Common Operations – Part 3
Data Structures – Linked Lists
- Linked Lists
- Linked List Complexities
- Doubly Linked List
- Circular Linked List and Implementing a Linked List
Data Structures – Stack and Queue
- Stack and Queue
Data Structures – Hash Tables
- Hash Tables
Data Structures - Trees
- Trees - Part 1
- Trees - Part 2
- Binary Tree
- Binary Search Tree
- Adelson-Vekskii Landis (AVL) Trees versus Red Black Trees
Data Structures – Heaps
- Heaps
- Heap Sort and Priority Queues
Data Structures – Tries
- Trie - I
- Trie - II
- Why Are Tries Important?
Data Structures – Graphs
- Graphs
Essential Concepts - II
- What is Recursion?
- Recursion: Control of a Function – Part 1
- Recursion: Tracing Tree – Part 2
- Recursion: Understanding a Call Stack – Part 3
- Recursion: Tree Recursion – Part 4
- Recursion Example - Factorial of a Number
Algorithm: Searching
- Linear Search
- Binary Search
- Binary Search Complexity
- Implementing Binary Search – Part 1
- Implementing Binary Search Implementation – Recursion – Part 2
Algorithm: Sorting Elementary
- Sorting Algorithm – Introduction
- Bubble Sort
- Bubble Sort Visualization
- Implementing Bubble Sort
- Bubble Sort Complexity
- Selection Sort
- Selection Sort Visualization
- Implementing Selection Sort
- Selection Sort Complexity
- Insertion Sort
- Implementing Insertion Sort
- Insertion Sort Complexity
- Performance Analysis
Algorithm: Sorting Advanced
- Quick Sort
- Quick Sort Complexity
- Implementing Quicksort
- Merge Sort
- Merge Sort Complexity
- Implementing Merge Sort
Algorithm: Tree Traversals
- Tree Traversal
- Depth-first Search – (Preorder, Inorder, and Postorder)
- Implementing a Binary Tree
- Implementing Depth-first Search
- Depth-first Search Complexity
- Breadth-first Search - Level Order
- Implementing Breadth-first Search
- Breadth-first Search Complexity
Algorithms: Graph Traversal
- Graph Traversal
- Implementing Graph Animation
- Implementing Breadth-first Search
- Implementing Depth-first Search
- Graph Traversal Complexity
Implementations and Interview Questions
- Implementing Data Structures
- Problem Solving Approach
Question 1: Two Sum
- Two Sum
Question 2: Min Stack
- Min Stacks
- Implementing a Min Stack
Question 3: Max Stack
- Max Stacks
Question 4: Design of a Linked List
- Designing a Linked List – Part I
- Designing a Linked List – Part 2
- Designing a Linked List – Part 3
- Designing a Linked List – Part 4
Question 5: Reserve Linked List
- Reversing Linked List - I
- Reversing Linked List - II
Question 6: Constructing a Binary Tree
- Traversal (Preorder, Inorder, and Postorder)
- Constructing a Binary Tree: From Preorder and Inorder Traversal – Part 1
- Constructing a Binary Tree: From Preorder and Inorder Traversal – Part 2
Question 7: Invert Binary Tree
- Invert Binary Tree – Part 1
- Invert Binary Tree – Part 2
Constructing a Binary Search Tree: From Preorder Traversal – Part 1
- Constructing a Binary Search Tree: From Preorder Traversal – Part 2
Question 9: Detect Capital
- Detect Capital
Question 10: Reverse Strings
- Reverse Strings
Question 11: Longest Palindromic Substring
- Longest Palindromic Substring – Part 1
- Longest Palindromic Substring – Part 2