C语言数据结构分析.ppt

对AOV网进行拓扑排序的步骤是: (1) 在网中选择一个没有前驱的顶点且输出之。 (2) 在网中删去该顶点,并且删去从该顶点发出的全部有向边。 (3) 重复上述两步,直到网中不存在没有前驱的顶点为止。 这样操作结果有两种:一种是网中全部顶点均被输出,说明网中不存在有向回路;另一种是网中顶点未被全部输出,剩余的顶点均有前驱顶点,说明网中存在有向回路。 拓扑排序的方法很多,主要有深度优先搜索排序和广度优先搜索排序两种,下面分别介绍。 1. 广度优先搜索拓扑排序 根据拓扑排序的方法,把入度为0的顶点插入一个队列,按顺序输出。本算法中将顶点的入度记录在邻接表数组的数据域中,即记录在list[v].data中。算法如下: void topsort(vexnode list[]) {arcnode * ptr; int v,w,n1=0; for (v=1;v=n;v++) if (list[v].data==0) enqueue (v); /*利用循环检测入度为0的顶点并入队,即将无前驱的顶点加入队列*/ while((v=dequeue())!=EOF) { printf(%-5d%c,v,(++n1

文档评论(0)

1亿VIP精品文档

相关文档