拓扑排序是有向图的一种重要的应用。根据拓扑排序,我们能合理的安排活动的先后顺序。
它的算法为:
v(1)在有向图中选一个没有前驱的顶点且输出之 。
v
(3)重复上述步骤直至不存在没有前驱的结点为止。
利用拓扑排序我们也可以检测有向图中是否有回路。
v
(2)从图中删除该顶点和所有以它为尾的弧。








































































































































在代码中我用加标志的方法来标注无前驱的结点,实现的拓扑排序的功能。
也可以采用stack来存储无前驱的结点,在出栈的时候将相应结点的入度减一,如果出现了入度为0,即无前驱的结点,则进栈。本来应该在代码中实现,是个缺陷。
如果配以图片的说明更好些,但是总是上传不了。不知道为什么。
最近整理代码的时间花得少了。