Find the sequence of dependencies a set of nodes in a directed acyclic graph (DAG). Sample use case: concurrent task processing: given a set of tasks, determine which ones can be executed in parallel, and which ones need to run in sequence.
Find the sequence of dependencies a set of nodes in a directed acyclic graph (DAG). Sample use case: concurrent task processing: given a set of tasks, determine which ones can be executed in parallel, and which ones need to run in sequence.
Attributes
Throws
java.lang.AssertionError
if given nodes have cyclic dependencies Algorithm: variant of Kahn's algorithm for topological sort 1) for given nodes, find all leaves, i.e. the those without parents (e.g. task dependencies) 2) disregard all that have already been visited and add to the results sequence 3) repeat for the remainder of nodes see https://en.wikipedia.org/wiki/Topological_sorting#Kahn%27s_algorithm