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); }
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; }