//private List<Edge> AddRandomConnections(Node n, int numberOfConnections) //{ // var ret = new List<Edge>(); // while (n.ConnectedNodes.Count < numberOfConnections) // { // var uncongestedNodes = graph.Nodes.Where(node => node.ConnectedNodes.Count < numberOfConnections && !node.Equals(n)).ToList(); // var index = rnd.Next(uncongestedNodes.Count); // var other = uncongestedNodes[index]; // int weight = rnd.Next(0, 10); // while (other.IsConnectedTo(n)) // { // index = rnd.Next(uncongestedNodes.Count); // other = graph.Nodes[index]; // } // var edge = new Edge(n, other, true, weight); // n.AdjacentEdges.Add(edge); // other.AdjacentEdges.Add(edge); // ret.Add(edge); // } // return ret; //} //private List<Edge> GetAllPossibleEdges(Graph g) //{ // var set = new HashSet<int>(); // for (int i = 0; i < g.Nodes.Count; i++) // { // for (int j = 0; j < g.Nodes.Count; j++) // { // if (i == j) continue; // string edgeCode = i.ToString() + j.ToString(); // Node a = g.Nodes[i]; // Node b = g.Nodes[j]; // } // } // return ret; //} private void Connect(Node a, params Node[] other) { foreach (var o in other) { graph.Edges.Add(a.ConnectTo(o)); } }