Two Graph class implementations, one using an adjacency list and the other using an adjacency matrix. Includes functionality for performing various searches including dijkstra's algorithm.