/// <summary> /// Creates a simple-complete graph. Every node is connected to every other node using a /// bidirectional link, without loopbacks. /// </summary> /// <typeparam name="TNode"></typeparam> /// <typeparam name="TLink"></typeparam> /// <param name="graph"></param> /// <param name="nodes"></param> /// <param name="linkData"></param> public static void SimpleComplete <TNode, TLink>(Graph <TNode, TLink> graph, IReadOnlyList <TNode> nodes, TLink linkData) { ArgCheck(graph, nodes, linkData); for (int start = 0; start < nodes.Count; start++) { for (int end = 0; end < nodes.Count; end++) { if (start.Equals(end)) { continue; } graph.AddLink(nodes[start], nodes[end], linkData); } } }