Топологическая сортировка - это обход деревьев по порядку (или направленных ациклических графов).
Идея состоит в том, что узлы графа представляют задачи, а ребро от A
до B
указывает, что A
должен быть выполнен до B
. Топологическая сортировка организует эти задачи в такой последовательности, чтобы все зависимости задачи появлялись раньше, чем сама задача. Любая система сборки, например UNIX make , должна реализовывать этот алгоритм.
Пример, упомянутый Дарио - уничтожение всех узлов дерева с помощью ручного управления памятью - является примером этой проблемы. В конце концов, задача уничтожения узла зависит от уничтожения его дочерних элементов.