在计算机科学领域，有向图的拓扑排序是对其顶点的一种线性排序，使得对于从顶点formula_1到顶点formula_2的每个有向边formula_3，formula_1在排序中都在formula_2之前。例如，图形的顶点可以表示要执行的任务，并且边可以表示一个任务必须在另一个任务之前执行的约束；在这个应用中，拓扑排序只是一个有效的任务顺序。当且仅当图中没有定向环时（即有向无环图），才有可能进行拓扑排序。任何有向无环图至少有一个拓扑排序。已知有算法可以在线性时间内，构建任何有向无环图的拓扑排序。