Exemplo n.º 1
0
        public static AdjacencyListGraph <int> CreateMininumSpanningTreeGraph1()
        {
            var vertexKeys = new List <int>
            {
                1, 2, 3, 4, 5, 6, 7, 8, 9
            };

            var graph = new AdjacencyListGraph <int>(true);

            var vertexs = graph.CreateVertexs(vertexKeys);

            var edges = new List <AdjacencyEdge <int> >();

            edges.AddRange(graph.CreateNonDirectionEdge(vertexs[0], vertexs[1], 3));
            edges.AddRange(graph.CreateNonDirectionEdge(vertexs[1], vertexs[2], 4));
            edges.AddRange(graph.CreateNonDirectionEdge(vertexs[2], vertexs[3], 1));


            edges.AddRange(graph.CreateNonDirectionEdge(vertexs[3], vertexs[4], 3));

            edges.AddRange(graph.CreateNonDirectionEdge(vertexs[2], vertexs[5], 1));

            edges.AddRange(graph.CreateNonDirectionEdge(vertexs[5], vertexs[6], 1));
            edges.AddRange(graph.CreateNonDirectionEdge(vertexs[6], vertexs[7], 2));

            edges.AddRange(graph.CreateNonDirectionEdge(vertexs[8], vertexs[7], 9));


            //这时的值就是一个生成树。值是24!

            edges.AddRange(graph.CreateNonDirectionEdge(vertexs[0], vertexs[4], 1));

            edges.AddRange(graph.CreateNonDirectionEdge(vertexs[6], vertexs[8], 8));

            //新的应该是

            graph.CreatGraph(vertexs, edges);

            return(graph);
        }