A graph data structure consists of a finite (and possibly mutable) set of "vertices" (also called "nodes" or "points"), together with a set of unordered pairs of these vertices for an undirected graph or a set of ordered pairs for a directed graph.