public IDiGraph Reverse() { IDiGraph R = new DiGraph(V); for (int v = 0; v < V; v++) { foreach (int w in Adj(v)) { R.AddEdge(w, v); } } return(R); }
public Topological(IEdgeWeightedDIgraph G) { IDiGraph g = new DiGraph(G.V); for (int i = 0; i < G.V; i++) { foreach (var e in G.Adj(i)) { g.AddEdge(e.From, e.To); } } Order = Init(g); }