Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }