public IEnumerable <DirectedEdge> findNegativeCycle()
        {
            int V = m_edgeTo.Length;
            EdgeWeightedDigraph spt = new EdgeWeightedDigraph(V);

            for (int v = 0; v < V; v++)
            {
                if (m_edgeTo[v].IsSet)
                {
                    spt.addEdge(m_edgeTo[v]);
                }
            }

            EdgeWeightedDirectedCycle finder = new EdgeWeightedDirectedCycle(spt);

            return(m_cycle = finder.cycle);
        }
Example #2
0
        public IEnumerable<DirectedEdge> findNegativeCycle()
        {
            int V = m_edgeTo.Length;
            EdgeWeightedDigraph spt = new EdgeWeightedDigraph(V);
            for (int v = 0; v < V; v++)
            {
                if (m_edgeTo[v].IsSet)
                    spt.addEdge(m_edgeTo[v]);
            }

            EdgeWeightedDirectedCycle finder = new EdgeWeightedDirectedCycle(spt);
            return m_cycle = finder.cycle;
        }