拓扑排序是图的算 法中经常碰到的一个算法,也经常用来判断图是否存在环等问题,算法的过程主要是:开始将所有入度为0的顶点进入一个阶列,将队列中的顶点出队列,即相当于 将该顶点从图中删除,同时删除与此顶点关联的边,删除边导致与顶点相关联的边的另一个顶点的入度减1,如果该同时入度又等于0,则将其放入队列中,循环下 去直至队列为空为止。循环开始前设置一个counter计数器,计算出队列的顶点数,如果循环结束后,出队列的顶点数不等于图的顶点的个数,那么即存在环。
在程序当前目录下建立graph.txt文件,写入下面内容,VC++ 6.0下程序运行通过。
v1 v2
v1 v3
v1 v4
v2 v4
v2 v5
v3 v6
v4 v3
v4 v6
v4 v7
v5 v4
v5 v7
v7 v6