拓扑排序详解
1. 定义
拓扑排序(Topological Sorting)是对有向无环图(DAG, Directed Acyclic Graph)顶点进行的一种排序,使得对于每一条有向边 ( u \rightarrow v ),顶点 ( u ) 在排序中出现在顶点 ( v ) 之前。简言之,拓扑排序就是给定一组先决条件,找出一个符合这些条件的排列顺序。
2. 拓扑排序的性质
- 有向无环图:只有DAG可以进行拓扑排序。
- 唯一性:一个DAG可能有多个拓扑排序,但如果存在环路,则无法进行拓扑排序。
- 拓扑序列:拓扑排序的结果是所有顶点的一个线性序列。
3. 拓扑排序算法