public EdgeWightedGraph(TextReader reader)
        {
            //添加边和权
            V = Int32.Parse(reader.ReadLine());     //点数
            int E = Int32.Parse(reader.ReadLine()); //边数(无向图边长*2.AddEdge会加上this.E。这是一个临时的变量)

            //标准的图
            adj = new Chapter1.BagDemo.Bag <Edge> [V];
            for (var i = 0; i < V; ++i)
            {
                adj[i] = new Chapter1.BagDemo.Bag <Edge>();
            }
            for (int i = 0; i < E; ++i)
            {
                string[] vw = reader.ReadLine().Split(new char[] { ' ', '\t', '\n' }, StringSplitOptions.RemoveEmptyEntries);
                if (vw.Length == 3)
                {
                    int    v   = int.Parse(vw[0]);
                    int    w   = int.Parse(vw[1]);
                    Double wei = Double.Parse(vw[2]);
                    AddEdge(new Edge(v, w, wei));
                }
                else
                {
                    throw new IndexOutOfRangeException("没有提供足够的数据连接");
                }
            }
            reader.Close();
        }
 private Chapter1.BagDemo.Bag <Edge>[] adj;//边的邻接表
 public EdgeWightedGraph(Int32 V)
 {
     this.V = V;
     this.E = 0;
     adj    = new Chapter1.BagDemo.Bag <Edge> [V];
     for (var i = 0; i < V; ++i)
     {
         adj[i] = new Chapter1.BagDemo.Bag <Edge>();
     }
 }