コード例 #1
0
ファイル: Topological.cs プロジェクト: kaplunov93/Algorithms
        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();
            }
        }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
 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();
 }
コード例 #4
0
        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();
        }
コード例 #5
0
        public static bool hasCycles(this EdgeWeightedDigraph ewg)
        {
            DirectedCycle dc = new DirectedCycle(ewg);

            return(dc.hasCycle());
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: kaplunov93/Algorithms
 public static bool hasCycles(this EdgeWeightedDigraph ewg)
 {
     DirectedCycle dc=new DirectedCycle(ewg);
     return dc.hasCycle();
 }