private IList <IEnumerable <DirectedEdge> > FindSequences() { var sequences = new List <IEnumerable <DirectedEdge> >(); var csFinder = new ConnectedSubgraphFinder(_graph); var subgraphs = csFinder.GetConnectedSubgraphs(); foreach (var subgraph in subgraphs) { if (HasSequence(subgraph)) { var seq = FindSequence(subgraph); sequences.Add(seq); } else { // if any subgraph cannot be sequenced, abort return(null); } } return(sequences); }
private IList FindSequences() { IList sequences = new ArrayList(); ConnectedSubgraphFinder csFinder = new ConnectedSubgraphFinder(graph); IList subgraphs = csFinder.ConnectedSubgraphs; for (IEnumerator i = subgraphs.GetEnumerator(); i.MoveNext();) { Subgraph subgraph = (Subgraph)i.Current; if (HasSequence(subgraph)) { IList seq = FindSequence(subgraph); sequences.Add(seq); } else { // if any subgraph cannot be sequenced, abort return(null); } } return(sequences); }