
拓扑排序是对有向无环图(DAG)中顶点按依赖关系进行的线性排序,保证若存在边 u→v,则u 必在v之前出现。
排序方法
拓扑排序的方法非常简单,如下:
- 从DAG图中选择一个没有前驱(入度为0)的顶点并输出
- 从图中删除该顶点和所有以它为起点的有向边
重复上述两个步骤知道DAG图为空
注意,当排序过程中有多个入度为0的顶点时,可以任意选择,故拓扑排序的结果不唯一。
例题

考点
1.若有向图的拓扑排序序列为1,则图中每个点的入度和出度最多为1。
2."拓扑序列唯一" ≠ "原图唯一"。
3.用领接矩阵存储具有有序拓扑序列的有向图,则其领接矩阵必是三角矩阵,若不是三角矩阵则图中可能存在环。
4.在拓扑排序序列中,若顶点在
之前,则有可能是:
G中有一条到
的弧
G中没有弧但是有一条
到
的路径,比如: