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>(); } }