Mental Model
We find an order to do tasks so that all dependencies come before the task itself. We start with tasks that have no prerequisites and remove them step-by-step.
Analogy: Imagine you have a list of chores where some chores depend on others being done first. You start with chores that don't need anything done before them, finish those, then move on to chores that become free after finishing the first ones.
Graph nodes with arrows showing dependencies: A -> B -> D ↓ ↑ C --------- Start with nodes having no incoming arrows (A), then remove them and update.
