Topological Sort

Order the nodes of a graph so every task comes after everything it depends on, used for scheduling and build order.