コード例 #1
0
ファイル: Generator.cs プロジェクト: n1k0s79/Graphs
        //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));
            }
        }