## Learning Outcomes

At the end of this lecture, you’ll be able to:

- Define the
**neighborhood**of a vertex. - Identify a
**path**from a source vertex to a destination vertex. - State the
**General Graph Search**problem. - Identify
**reachable**vertices in a graph, from a source vertex. - Identify a general solution to the general graph search problem.
- Generate and trace Graph search types by specifying how to explore the neighbor in the general search algorithm.
- Describe, trace, and implement the
**Breadth-First Search**algorithm. - Describe, trace, and implement the
**Depth-First Search**algorithm. - Identify which data structure supports each traversal/search type: breadth-first, depth-first
- Analyze the time complexity of BFS and DFS for each Graph implementation (list vs. matrix)

## Lecture Plan

In this lecture, we'll cover the following lessons:

- Graph Terminology: Neighborhood of a Vertex⚡
- Graph Terminology: Path⚡
- Graph Search: Definition
- Graph Search: Exercise⚡
- Graph Search: General Solution
- Graph Search: BFS
- Graph Search: BFS Exercise⚡
- Graph Search: BFS Pseudocode⚡
- Graph Search: DFS
- Graph Search: DFS Exercise⚡
- Graph Search: DFS Pseudocode⚡
- Graph Search: Analysis
- Graph Search: Summary

Lessons marked with ⚡ contain exercise/activity.