public TopologicalSort(AdjacencyList <T, TNode> list) { _list = list; _results = new List <TNode>(); _sourceNodes = _list.SourceNodes; Sort(); }
public TopologicalSort(AdjacencyList <T, TNode> list, T source) { _list = list; _results = new List <TNode>(); TNode sourceNode = list.GetNode(source); _sourceNodes = Enumerable.Repeat(sourceNode, 1); Sort(); }
public Tarjan(AdjacencyList <T, TNode> list) { _list = list; _index = 0; _result = new List <IList <TNode> >(); _stack = new Stack <TNode>(); foreach (TNode node in _list.SourceNodes) { if (node.Index != -1) { continue; } Compute(node); } }
public DependencyGraph(int capacity) { _adjacencyList = new AdjacencyList <T, DependencyGraphNode <T> >(DefaultNodeFactory, capacity); }