[−][src]Function tree_mem_sort::sort_dag
pub fn sort_dag<T, P, C>(nodes: &mut [T], parents: P, children: C) where
P: Fn(&mut T) -> &mut [usize],
C: Fn(&mut T) -> &mut [usize],
The same algorithm as sort
, but for Directed Acyclic Graphs (DAGs),
encoded as trees with shared nodes.
WARNING: To avoid an infinite loop, one must be careful about the order of children.
E.g. if A
has children C, B
and B
has child C
, then the tree is not a DAG.
This is because the order of children is preserved after sorting.