##
**Data Structures in C++: An Interview Refresher**

## Data structures are amongst the very fundamentals of Computer Science and are often a core decision in developing efficient programs.

Consequently, they are also largely categorized as a vital benchmark of computer science knowledge when it comes to industry interviews.

This course contains a detailed review of all the common data structures and provides implementation level details in C++ to allow readers to become well equipped with all the different data structures they can leverage to write better code!

**Contents**

**1. Introduction to Complexity Measures**

- Comparing Algorithms
**Example 1:**Measuring Time Complexity of a Single Loop Algorithm**Example 2:**Time Complexity of an Algorithm With Nested Loops- Introduction to Asymptotic Analysis and Big O
- Other Common Asymptotic Notations and Why Big O Trumps Them
- Useful Formulae
- Common Complexity Scenarios
**Challenge 1:**Big (O) of Nested Loop with Addition- Solution Review: Big (O) of Nested Loop with Addition
**Challenge 2:**Big (O) of Nested Loop with Subtraction- Solution Review: Big (O) of Nested Loop with Subtraction
**Challenge 3:**Big (O) of Nested Loop with Multiplication- Solution Review: Big (O) of Nested Loop with Multiplication
**Challenge 4:**Nested Loop with Multiplication (Basic)- Solution Review: Nested Loop with Multiplication (Basic)
**Challenge 5:**Nested Loop with Multiplication (Intermediate)- Solution Review: Nested Loop with Multiplication (Intermediate)
**Challenge 6:**Nested Loop with Multiplication (Advanced)- Solution Review: Nested Loop with Multiplication (Advanced)
**Challenge 7:**Nested Loop with Multiplication (Pro)- Solution Review: Nested Loop with Multiplication (Pro)
- Complexity Quiz: Test your understanding of Complexity

**2. Introduction to Arrays**

- What is an Array?
- Multidimensional Arrays
**Challenge 1:**Remove Even Integers From an Array- Solution Review: Remove Even Integers From an Array
**Challenge 2:**Merge Two Sorted Arrays- Solution Review: Merge Two Sorted Arrays
**Challenge 3:**Find Two Numbers that Add up to "value"- Solution Review: Find Two Numbers that Add up to "value"
**Challenge 4:**Array of Products of all Elements- Solution Review: Array of Products of All Elements
**Challenge 5:**Find Minimum Value in an Array- Solution Review : Find Minimum Value in an Array
**Challenge 6:**Find First Unique Integer in an Array- Solution Review: Find First Unique Integer in an Array
**Challenge 7:**Find Second Maximum Value in an Array- Solution Review: Find Second Maximum Value in an Array
**Challenge 8:**Right Rotate an Array by 1- Solution Review: Right Rotate an Array by 1
**Challenge 9:**Rearrange Positive & Negative Values- Solution Review : Rearrange Positive & Negative Values
**Challenge 10:**Rearrange Sorted Array in Max/Min Form- Solution Review: Rearrange Sorted Array in Max/Min Form
- Arrays Quiz: Test Your Understanding of Arrays

**3. Introduction to Linked Lists**

- Singly Linked Lists (SLL)
- Basic Linked List Operations
- Singly Linked List Insertion
**Challenge 1:**Insertion at Tail- Solution Review: Insertion at Tail
**Challenge 2:**Search in a Singly Linked List- Solution Review: Search in a Singly Linked List
- Deletion in a Singly Linked List
**Challenge 3:**Deletion by Value- Solution Review: Deletion by Value
- Linked Lists vs. Arrays
**Challenge 4:**Find the Length of a Linked List- Solution Review: Find the Length of a Linked List
**Challenge 5:**Reverse a Linked List- Solution Review: Reverse a Linked List
**Challenge 6:**Detect Loop in a Linked List- Solution Review: Detect a Loop in a Linked List
**Challenge 7:**Find Middle Value of Linked List- Solution Review: Find Middle Value of a Linked List
**Challenge 8:**Remove Duplicates from Linked List- Solution Review: Remove Duplicates from a Linked List
**Challenge 9:**Union & Intersection of Linked Lists- Solution Review: Union and Intersection of Linked Lists
**Challenge 10:**Return the Nth node from End- Solution Review: Return the Nth Node from the End
- Doubly Linked Lists (DLL)
- Singly Linked Lists vs. Doubly Linked Lists
- Linked Lists Quiz: Test your understanding of Linked Lists

**4. Introduction to Stack/Queues**

- What is a Stack?
- Stack (Implementation)
- What is a Queue?
- Queue (Implementation)
**Challenge 1:**Generate Binary Numbers from 1 to n using Queue- Solution Review: Generate Binary Numbers from 1 to n using Queue
**Challenge 2:**Implement Two Stacks using one Array- Solution Review: Implement Two Stacks using one Array
**Challenge 3:**Reversing First k Elements of Queue- Solution Review: Reversing First k Elements of Queue
**Challenge 4:**Implement a Queue Using Stacks- Solution Review: Implement a Queue Using Stacks
**Challenge 5:**Sort Values in a Stack- Solution Review: Sort Values in Stack
**Challenge 6:**Evaluate Postfix Expression Using a Stack- Solution Review: Evaluate Postfix Expression Using a Stack
**Challenge 7:**Next Greater Element Using a Stack- Solution Review: Next Greater Element Using a Stack
**Challenge 8:**Check Balanced Parentheses Using Stack- Solution Review: Check Balanced Parentheses using Stack
**Challenge 9:**min() Function Using a Stack- Solution Review: min() Function Using a Stack
- Stack/Queue Quiz: Test your understanding of Stack/Queue

**5. Introduction to Graphs**

- What is a Graph?
- Types of Graphs
- Representation of Graphs
- Graph Implementation
- Complexities of Graph Operations
- What is a Bipartite Graph?
- Graph Traversal Algorithms
**Challenge 1:**Implement Breadth First Search- Solution Review: Implement Breadth First Search
**Challenge 2:**Implement Depth First Search- Solution Review: Implement Depth First Search
**Challenge 3:**Detect Cycle in Graph- Solution Review: Detect Cycle in Graph
**Challenge 4:**Find a "Mother Vertex" in a Graph- Solution Review: Find a "Mother Vertex" in a Graph
**Challenge 5:**Count the number of Edges in an Undirected Graph- Solution Review: Count the Number of Edges in an Undirected Graph
**Challenge 6:**Check if a Path Exists Between Two Vertices- Solution Review: Check if a Path Exists Between Two Vertices
**Challenge 7:**Check if an Undirected Graph is Tree or not- Solution Review: Check if an Undirected Graph is a Tree or Not
**Challenge 8:**Find the Shortest Path between Two Vertices- Solution Review: Find the Shortest Path Between Two Vertices
**Challenge 9:**Remove Edge- Solution Review: Remove Edge
- Graph Quiz: Test your understanding of Graphs

**6. Introduction to Trees**

- An Introduction to Trees and Basic Tree Properties!
- What Makes a Tree 'balanced'?
- What is a Binary Tree?
- More on Complete Binary Trees
- Skewed Binary Trees
- What is a Binary Search Tree (BST)?
- Implementing a Binary Search Tree in C++
- Binary Search Tree Insertion
- Binary Search Tree Insertion (Implementation)
- Searching in a Binary Search Tree (Implementation)
- Deletion in Binary Search Tree
- Deletion in Binary Search Tree (Implementation)
- Pre-Order Traversal
- Post-Order Traversal
- In-Order Traversal
- What is an AVL Tree?
- AVL Insertion
- AVL Deletion
- What is a Red-Black Tree?
- Red-Black Tree Insertion
- Red-Black Tree Deletion
- What is 2-3 Tree?
- 2-3 Insertion
- 2-3 Deletion (Case #1)
- 2-3 Deletion (Case #2)
- 2-3-4 Trees
- Overview of Trees
**Challenge 1:**Find minimum value in Binary Search Tree- Solution Review: Find minimum value in Binary Search Tree
**Challenge 2:**Find kth maximum value in Binary Search Tree- Solution Review: Find kth maximum value in Binary Search Tree
**Challenge 3:**Find Ancestors of a given node in a BST- Solution Review: Find Ancestors of a given node in a BST
**Challenge 4:**Find the Height of a Binary Tree- Solution Review: Find the Height of a Binary Tree
**Challenge 5****:**Find Nodes at "k" distance from the Root- Solution Review: Find Nodes at "k" distance from the Root
- Trees Quiz: Test your understanding of Trees

**7. Trie**

- What is a Trie?
- Structure of a Trie
- Insertion in a Trie
- Search in a Trie
- Deletion in Trie
**Challenge 1:**Total Number of Words in a Trie- Solution Review: Total Number of Words in a Trie
**Challenge 2:**Find All Words Stored in Trie- Solution Review: Find All Words Stored in Trie
**Challenge 3:**List Sort Using Tries- Solution Review: List Sort Using Tries
**Challenge 4:**Word Formation From a Vector Using Trie- Solution Review: Word Formation From a Vector Using a Trie
- Trie Quiz: Test Your Understanding of Tries

**8. Introduction to Heap**

- What is a Heap?
- Max Heap: Introduction
- Max Heap (Implementation)
- Min Heap: Introduction
- Min Heap (Implementation)
**Challenge 1:**Convert Max-Heap to Min-Heap- Solution Review: Convert Max-Heap to Min-Heap
**Challenge 2:**Find k Smallest Elements in the Array- Solution Review: Find k Smallest Elements in the Array
**Challenge 3:**Find k Largest Elements in the Array- Solution Review: Find k largest elements in the Array
- Heap Quiz: Test your understanding of Heaps

**9. Introduction to Hashing**

- What is a Hash Table?
- The Hash Function
- Collisions in Hash Tables
- Building a Hash Table from Scratch
- Add/Remove & Search in Hash Table (Implementation)
- A Quick Overview of Hash Tables
- Trie vs. Hash Table
- unordered_map vs unordered_set
**Challenge 1:**An Array as a Subset of Another Array- Solution Review: An Array as a Subset of Another Array
**Challenge 2:**Check if Arrays are Disjoint- Solution Review: Check if Arrays are Disjoint
**Challenge 3:**Find Symmetric Pairs in an Array- Solution Review: Find Symmetric Pairs in an Array
**Challenge 4:**Trace the Complete Path of a Journey- Solution Review: Trace the Complete Path of a Journey
**Challenge 5:**Find two pairs in an array such that a+b = c+d- Solution Review: Find Two Pairs Such That a+b = c+d
**Challenge 6:**A Subarray with a Sum of 0- Solution Review: A Subarray with a Sum of 0
**Challenge 7:**Find First Unique Integer in an Array- Solution Review: Find First Unique Integer in an Array
**Challenge 8:**Remove Duplicates from Linked List using Hashing- Solution Review: Remove Duplicates from Linked List using Hashing
**Challenge 9:**Union and Intersection of Lists using Hashing- Solution Review: Union and Intersection of Lists using Hashing
**Challenge 10:**Find Two Numbers that Add up to "value"- Solution Review: Find Two Numbers that Add up to "value"
- Hashing Quiz: Test your understanding of Hashing

**10. Summary of Data Structures**

- Overview of Linear & Non-Linear Data Structures
- Conclusion

Share This :

comment0 Commentsmore_vert