private static void AddStartNode(Graph graph, EdgeThree edgeThree) { graph.AddNode(0); graph.AddNode(1); graph.AddEdge(1, 0); edgeThree.AddEdge(1, 0); }
private static void MakeThree(EdgeThree edgeThree, Graph graph) { for (var currentNode = 2; currentNode < NodeCount; currentNode++) { graph.AddNode(currentNode); var used = new HashSet <int>(new[] { currentNode }); for (var i = 0; i < M; i++) { var randomNumber = GetRandomNumber(edgeThree); var selectedNode = edgeThree.GetIndexForRandomNumber(randomNumber); if (used.Contains(selectedNode)) { selectedNode = SelectEmptyNode(selectedNode, graph); } used.Add(selectedNode); graph.AddEdge(currentNode, selectedNode); edgeThree.AddEdge(currentNode, selectedNode); } } }