//返回一个图的副本,但将其中所有边的方向反转 public Digraph Reverse() { var r = new Digraph(V); for (int v = 0; v < V; v++) { foreach (var w in adj[v]) { r.AddEdge(w, v); } } return(r); }
public SymbolGraph(string stream, char sp) { dic = new Dictionary <string, int>(); using (var reader = new StreamReader(stream)) { while (reader.Peek() > -1) { var a = reader.ReadLine().Split(sp); for (int i = 0; i < a.Length; i++) { if (!dic.ContainsKey(a[i])) { dic.Add(a[i], dic.Count); } } } keys = new string[dic.Count]; foreach (var item in dic) { keys[item.Value] = item.Key; } G = new Graph(dic.Count); DirG = new Digraph(dic.Count); reader.BaseStream.Seek(0, SeekOrigin.Begin); while (reader.Peek() > -1) { var a = reader.ReadLine().Split(sp); var v = dic[a[0]]; for (int i = 1; i < a.Length; i++) { G.AddEdge(v, dic[a[i]]); DirG.AddEdge(v, dic[a[i]]); } } } }