预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共22页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

数据结构课程设计 设计说明书 有向图拓扑排序算法的实现 学生姓名樊佳佳学号1318064017班级网络工程1301成绩指导教师申静 数学与计算机科学学院 2016年1月4日 课程设计任务书 2015—2016学年第一学期 课程设计名称:数据结构课程设计课程设计题目:图的拓扑排序算法的实现完成期限:自2015年12月20日至2016年1月3日共2周设计内容: 1、设计任务 (1)给出一个有向无环图,遍历所有的节点;(2)能够实现对所有顶点的拓扑;(3)界面友好,可操作性强。 2、需求分析 对系统的功能及性能要求进行分析,写出需求规格说明书(可行性分析报告、系统的分层DFD图)。 3、软件设计 软件设计分两个阶段进行:总体设计和详细设计; 总体设计:确定系统总体设计方案,完成系统的模块结构图及模块的功能说明; 详细设计:对模块内部过程及数据结构进行设计,以及进行数据库设计、用户界面设计等编写出该项目的详细设计报告; 4、具体编码 编写程序,要求给出详细的注释,包括:模块名、模块功能、中间过程的功能、变量说明等。同时编写用户使用手册、程序模块说明等文档; 5、软件测试 所有测试过程要求采用综合测试策略:先作静态分析,再作动态测试。应事先制订测试计划,并要求保留所有测试用例,完成测试报告。 指导教师:申静教研室负责人:申静 课程设计评阅 评语: 指导教师签名: 年月日 摘要 设计了一个对有向图进行拓扑排序的算法,该算法首先用邻接表构造有向图的存储结构,然后对此有向图进行拓扑排序,输出拓扑排序的结果。用VC++作为软件开发环境,以邻接表作为图的存储结构,将图中所有顶点排成一个线性序列,输出拓扑排序结果。拓扑排序常用来确定一个依赖关系集中,事物发生的顺序。拓扑排序是对有向无环图的顶点的一种排序,它使得如果存在一条从顶点A到顶点B的路径,那么在排序中B出现在A的后面。 关键词:邻接表;有向无环图;拓扑排序目录 TOC\o"1-3"\u1课题描述 PAGEREF_Toc287017364\h1 2问题分析和任务定义 PAGEREF_Toc287017365\h2 3逻辑设计 PAGEREF_Toc287017366\h3 3.1程序模块功能图 PAGEREF_Toc287017367\h3 3.2抽象数据类型 PAGEREF_Toc287017368\h3 4详细设计 PAGEREF_Toc287017369\h4 4.1C语言定义的相关数据类型 PAGEREF_Toc287017370\h4 4.2主要模块的伪码算法 PAGEREF_Toc287017371\h4 4.2.1主函数伪码算法 PAGEREF_Toc287017372\h4 4.2.2邻接表伪码算法 PAGEREF_Toc287017373\h4 4.2.3拓扑排序的伪码算法: PAGEREF_Toc287017374\h5 4.3主函数流程图 PAGEREF_Toc287017375\h6 5程序编码 PAGEREF_Toc287017376\h7 6程序调试与测试 PAGEREF_Toc287017377\h13 7结果分析 PAGEREF_Toc287017378\h16 8总结 PAGEREF_Toc287017379\h17 参考文献 PAGEREF_Toc287017380\h18 1课题描述 根根据设计要求运用C语言程序设计了一个对有向图进行拓扑排序的算法,该算法首先用邻接表构造有向图的存储结构,然后对此有向图进行拓扑排序,输出拓扑排序的结果。 如给定一个有向无环图如图1.1所示。在此图中,从入度为0的顶点出发,删除此顶点和所有以它为尾的弧;重复直至全部顶点均已输出;或者当图中不存在无前驱的顶点为止。 2 3 1 4 5 图1.1有向无环图 开发工具:VisualC++6.02问题分析和任务定义 对一个有向无环图G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对由某个集合上的一个偏序得到该集合上的一个全序,这个操作就称之为拓扑排序。偏序集合中仅有部分成员之间颗比较,而全序指集合中全体成员之间均可比较,而由偏序定义得到拓扑有序的操作便是拓扑排序。 一个表示偏序的有向图可用来表示一个流程图,通过抽象出来就是AOV-网,若从顶点i到顶点j有一条有向路径,则i是j的前驱,j是i的后继。若(i,j)是一条弧,则i是j的直接前驱;j是i的直接后继。 在AOV-网中,不应该出现有向环,用拓扑排序就可以判断网中是否有环,若网中所有顶点都在它的拓扑有序序列中,则该AO