private IEnumerable<int> order; // topological order #endregion Fields #region Constructors public Topological(EdgeWeightedDigraph G) { DirectedCycle cyclefinder = new DirectedCycle(G); if (!cyclefinder.hasCycle()) { DepthFirstOrder dfs = new DepthFirstOrder(G); order = dfs.ReversePost(); } }
private IEnumerable <int> order; // topological order public Topological(EdgeWeightedDigraph G) { DirectedCycle cyclefinder = new DirectedCycle(G); if (!cyclefinder.hasCycle()) { DepthFirstOrder dfs = new DepthFirstOrder(G); order = dfs.ReversePost(); } }
private void findNegativeCycle() { int V = edgeTo.Length; EdgeWeightedDigraph spt; spt = new EdgeWeightedDigraph(V); for (int v = 0; v < V; v++) if (edgeTo[v] != null) spt.addEdge(edgeTo[v]); DirectedCycle cf = new DirectedCycle(spt); cycle = cf.Cycle(); }
private void findNegativeCycle() { int V = edgeTo.Length; EdgeWeightedDigraph spt; spt = new EdgeWeightedDigraph(V); for (int v = 0; v < V; v++) { if (edgeTo[v] != null) { spt.addEdge(edgeTo[v]); } } DirectedCycle cf = new DirectedCycle(spt); cycle = cf.Cycle(); }
public static bool hasCycles(this EdgeWeightedDigraph ewg) { DirectedCycle dc = new DirectedCycle(ewg); return(dc.hasCycle()); }
public static bool hasCycles(this EdgeWeightedDigraph ewg) { DirectedCycle dc=new DirectedCycle(ewg); return dc.hasCycle(); }