This document describes graphs and basic graph algorithms. It defines what a graph is as a set of vertices and edges. It also defines common graph types like directed and undirected graphs. The document then describes two common ways to represent graphs: adjacency lists and adjacency matrices. It provides pseudocode and examples for the core graph search algorithms Breadth-first Search (BFS) and Depth-first Search (DFS). BFS explores the graph in levels, starting from the source vertex. DFS explores edges deeply first before backtracking.