Implemented a generic graph library with support for both directed and undirected edges.
- Construct a graph by adding vertices and specifying edges
- Construct an undirected graph from a textual representation as an adjacency list
- Given an undirected graph, can compute the minimum number of cuts of the graph using the Karger Min-Cut algorithm