A graph G(V,E) is a finite, nonempty set of vertices V (or nodes) and a set of edges E. There are two main types of graphs: cyclic graphs and acyclic graphs. A cyclic graph is one where all or a number of its vertices are connected in a closed chain. In acyclic graphs, there are no closed chains. A Directed Graph is one whose edges have a direction associated with them. A Directed Acyclic Graph is a directed graph with no cycles in it.
As a node may contain any kind of information, nodes are usually implemented using Go structures.