数据结构实训讲解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构实训讲解

河南工程学院《数据结构与算法》课程设计 综合题目:河南工程学院导航系统 自选题目:教学计划编制问题 2016年1月8日 综合设计题目录 一.设计目的 1 二.问题描述 1 三.测试数据 1 四.算法思想 2 五.算法设计 3 六.C语言实现的程序清单 6 七.测试结果 22 八.设计体会 25 一.设计目的 通过课程设计,熟练掌握数据结构中对图的知识的了解和应用,在他人使用本系统之前,需要有学校管理人员对学校的内部结构进行管理,对路线、距离等信息进行上传,所以上传者要对图的知识有一定的了解。在这次实训中,我们选取校园内的几个具有代表性的建筑物并将其抽象成一个有向带权图,以图中的节点代表校园的建筑物,以结点之间的弧代表建筑物之间的距离,以距离来规定乘坐校车的费用,从而构建校园内的导航系统,并为不同人群提供服务。由于在查询时需要查询最短距离和最小费用,所以我们采用了迪杰斯特拉算法和弗洛伊德算法进行计算,并对两种算法进行比较,选择较为合理和准确的算法作为本系统的运算结果。 根据用户指定的始点和终点可以查询相应路线的距离,乘车费用等信息。利用本系统,用户可以查询管理人员上传的关于所有建筑物路线的通行信息。 二.问题描述 本程序的功能包括有向带权图的建立,以及求解图的连通性问题,求解图的关键路径问题。 程序运行后,首先需要管理员对后台进行一定的管理,输入校园内各个建筑物之间的路程,费用等信息。 管理人员对后台管理之后,用户进入可选择相应的功能,包括距离查询,校车费用查询,各建筑物的连通路线情况。 程序运行后会显示相应的提示信息,等待用户选择后,显示相应的运行结果以供用户参考使用。 三.测试数据 进入系统后,首先需要管理员对后台进行一定操作,对输入的数据进行保存,以供用户使用。管理人员及用户主要输入整型及字符串数据,输入以后按回车键,利用系统内部的程序对数据进行相应的管理,并显示相应结果。管理人员使用时,主要是对抽象图的建立,而用户使用则是对图的遍历及求解图的连通性问题,求解相应路径问题等。 测试数据为:“图书管”,“餐厅”,“男生宿舍”,“1”,“2”,“3”等。 测试过程: 1、建立有向带权图,如下所示: 管理员及客户操作流程见流程图: 四.算法思想 1、图的数据结构 图是一种较线性表和树更为复杂的数据结构,在图形结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关,这也正符合现实生活中城市与城市、道路与城市、道路与道路、建筑与建筑等之间关系。由此,图的应用及其广泛,特别是近年来的迅速发展,已渗入到诸多学科当中。 图的存储结构 图的建立也可称为图的存储结构。由于图的结构比较复杂,任意两个顶点之间 都可能存在联系,因此无法以数据元素在存储区中的物理位置来表示数据元素之间 关系,即图没有顺序映像的存储结构,但可以借助数组的数据类型表示元素之间的 关系。另一方面,用多重链表表示图是自然的事,它是一种最简单的链式映像结构, 即以一个由一个数据域和多个指针域组成的结点表示图中一个顶点,其中数据域存 储该定点的信息,指针域存储指向其邻接点的指针。但是,由于图中各个结点的度 数各不相同,最大度数和最小度数可能相差很多,因此,若按度数最的大顶点设计 结点结构,则会浪费很多存储单元;反之,若按每个顶点自己的度数设计不同的结 点结构,又会给操作带来不便。因此,和树类似,在实际应用中不宜采用这种结构, 而应根据具体的图和需要进行的操作,设计恰当的结点结构和表结构。常用的又邻 接表、临界多重表和十字链表。这里不再对其进行一一讨论。 图的遍历 在遍历的时候,我们希望从图中某一顶点出发遍历图中其余顶点,且使每一个 顶点仅被访问一次,这个过程叫做图的遍历。然而,图的遍历较为复杂。因为图的 任一顶点和其余顶点相邻。所以在访问了某个顶点之后,可能沿着某条路径搜索之 后又回到该顶点上。为了避免这一问题出现,在遍历图的过程中,必须记下每个已 被访问过的顶点。再次被访问时将跳过该结点,以此解决可能被多次访问的问题。 五.算法设计 程序流程图 管理员功能流程图: 客户功能流程图: 算法用到的抽象数据类型定义: 1.ADT Graph{ 数据对象V:V是具有相同的特性的数据元素的集合,称为定点集。 数据关系R: R={VR} VR={v,w|∈V,且P(v,w),v,w表示从v到w的弧;

文档评论(0)

2299972 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档