Graph implementations
As with heaps, graphs are a form of tree data structure and, therefore, we will not find a native concrete implementation in the languages we are discussing. However, the graph data structure is surprisingly easy to implement, so we will build our own Graph
class from scratch.