## Introduction to Graphs

- Graph Data Structures
- Introduction to Graph Theory
- Weighted vs. Unweighted Graphs
- What Is the Difference Between a Directed and an Undirected Graph
- Graph Adjacency and Incidence
- Time and Space Complexity of Adjacency Matrix and List
- Graph Density
- Graphs: Sparse vs Dense
- Determine Maximum Number of Edges in a Directed Graph
- Node Degrees
- Graph Theory: Path vs. Cycle vs. Circuit

## Binary Trees

- Introduction to the Binary Tree Data Structure
- Number of Nodes in a Binary Tree With Level N
- Calculating the Height of a Binary Tree (popular)
- Height of a Balanced Tree
- Applications of Binary Trees
- Difference Between Full, Complete, and Perfect Tree
- Complete Binary Tree vs Almost Complete Binary Tree
- Binary Tree vs. Binary Search Tree

## Binary Trees Traversal

- Level-order Traversal of Binary Tree
- Finding the In-Order Successor of a Node
- Print All Paths With a Given Sum in a Binary Tree
- Serialize and Deserialize a Binary Tree
- What Is the Time Complexity of Tree Traversal?
- Max-Heapify A Binary Tree
- How to Check If a Binary Tree Is Symmetric?
- Sorting the Elements in a Binary Tree
- Finding the Lowest Common Ancestor of Two Nodes in a Binary Tree