Data Structures for Graphs
An Adjacency List
A list of pointers, one for each node of the graph
These pointers are the start of a linked list of nodes that can be
reached by one edge of the graph
For a weighted graph, this list would also include the weight for each
edge