一.什么是拓扑排序?
它是一个在有向无环图中对顶点的排序,在此图中,每个顶点都排在所有以它为起点的的相邻节点之前。
2.具体操作步骤:
a.计算所有顶点的入度
b.将所有入度为0的顶点放入队列中。
c.当队列不为空时,从队列中弹出顶点v且将v的左右相邻顶点的入度减1
d.一旦某个顶点的入度为0,将其放入队列中,重复c,d知道完毕。
例子:
对于下图进行拓扑排序分析
1.首先,我们要知道7,5,3一定在最前面,其次是11,8,最后才是2,9,10
我们要知道7,5,3入队的顺序不同可能会导致排序的结果不同:
我们以7,5,3为例:
其他情况同理。