An UndirectedGraph is a DataStructure containing a vertex set V and an edge set E, where each edge is an unordered pair of vertices.
Variants of this data structure:
Ordered pairs may be used to hold the vertices instead of unordered pairs, resulting in a DirectedGraph.