拓扑排序实验报告.docVIP

  • 181
  • 0
  • 约 5页
  • 2017-08-13 发布于安徽
  • 举报
实验题目: 图的应用 实验目的: (1)熟练掌握图的基本存储方法; 熟练掌握图的深度优先和广度优先搜索方法; 掌握AOV; 掌握AOE。拓扑排序任意给定一个有向图,设计一个算法对它进行拓扑排序。a.在有向图中任选一个没有前趋的顶点输出;b.从图中删除该顶点和所有以它为尾的弧;c.重复上述a、b,直到全部顶点都已输出,此时,顶点输出序列即为一个拓朴有序序列;或者直到图中没有无前趋的顶点为止,此情形表明有向图中存在环。 设计分析: 为实现对无权值有向图进行拓扑排序,输出拓扑序列,先考虑如何存储这个有向图。拓扑排序的过程中要求找到入度为0的顶点,所以要采用邻接表来存储有向图,而要得到邻接表,则先要定义有向图的邻接矩阵结构,再把邻接矩阵转化成邻接表。 在具体实现拓扑排序的函数中,根据规则,当某个顶点的入度为0(没有前驱顶点)时,就将此顶点输出,同时将该顶点的所有后继顶点的入度减1,为了避免重复检测入度为0的顶点,设立一个栈St,以存放入度为0的顶点。 源程序代码: #includestdio.h #includestdlib.h #define MAXV 10 // 最大顶点个数 typedef struct { int edges[MAXV][MAXV]; // 邻接矩阵的边数组 int n;

文档评论(0)

1亿VIP精品文档

相关文档