数据结构实验图.docxVIP

  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文档。上传文档
查看更多
实验 7:图的应用 一、实验目的 图是应用极为广泛的数据结构,也是这门课程的重点,继续使学生更了解数据结构加操作的程序设计观点。 二、问题描述 给出一张某公园的导游图,游客通过终端询问可知: 从某一景点到另一个景点的最短路径。 游客从公园大门进入,选一条最佳路线,使游客可以不重复的游览各景点,最后回到出口。 三、实验要求 1、将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,边上的权值表示距离,选择适当的数据结构。 2、为游客提供图中任意景点相关信息的查询; 1、 为游客提供任意两个景点之间的一条最短的简单路径。 2、 为游客选择最佳游览路径。 四、实验环境 PC 微机 DOS 操作系统或 Windows 操作系统 Turbo C 程序集成环境或 Visual C++ 程序集成环境 五、实验步骤 1、设计公园平面图,图中顶点表示公园的各个景点,存放名称、代号、简介等信息; 边表示各景点之间的道路,边上的权值表示距离,选择适当的数据结构; 2、设计图的最短路径算法,如果有几条路径长度相同,选择途径景点较少的路径给游客; 3、设计图的深度优先搜索算法,如果有多种路径可选,则选带权路径最短的路线给游客; 4、选择适当语言实现算法; 3、 调试程序。 六、测试数据 可根据实际情况指定。 测试数据见南昌大学平面示意图。 七、实验报告要求 1、 问题描述; 该程序包扩以下内容: 设计学校的校园平面图,所含景点为9 个。 以图中顶点表示校内各景点,存放景点名称、代号、间介等信息;以边表示路径,存放路径长度等相关信息。 为来访客人提供图中任意景点相关信息的查询。 提供途中任意景点问路查询,即求任意两个景点间的一条最短的简单路径。 提供途中任意景点问路查询,即求任意两个景点间的所有路径。 提供校园图中多个景点的最佳访问路线查询,即求途经这多个景点的最佳(短 )路径。 设计思路:对系统功能抽象,分析问题描述。首先,平面图用输出模拟;存储景点信息采用结构体;对各景点用字母代替,字母组成图,通过对图的操作, 狄克斯特拉算法求出指定最短路径及一点到其它所有点的最短路径,递 归进行图的遍历求两点所有路径。由此可实现以上所有功能。 2、 图的建立 图的建立:这是一个无向带权图,实际上无向带权图与有向带权图相似,采用邻接矩阵存储比较方便。邻接矩阵的结点结构体如下: 其赋值如下: 3、 图的最短路径算法 算法思想:设置两个结点集合S 和 T,集合S 中存放已找到的最短路径的结点,集合 T 中存放当前还没找到的最短路径的结点。初始状态时,集合S 中只包含源点, 没为 v0,然后不断的从集合T 中选择到源点v0 的路径长度最短的结点u 加入到集合 S 中,集合 S 中每加入一新的结点 u,都要修改源点 v0 到集合 T 中剩余结点的当前最短路径长度值,集合 T 中各点的新的当前最短路径长度值为原来的当前最短 路径长度值,与结点 u 的最短路径长度值加上结点u 到该结点的路径长度值(即为从源点结点u 到达该结点的路径长度)中的较小者。此过程不断重复,直到集合T 中的对号点全部加到集合S 中为止。 算法实现如下: void Dijkstra(MGraphg,int v, int to) //Dijkstra g图中v 为起点求出到所有点的最短路径 { intdist[MAXV],path[MAXV]; //dist 存路径 path 存顶点int s[MAXV]; //标记 intmindis,i,j,u; for(i=0;ig.n;i++) { dist[i]=g.edges[v][i]; s[i]=0; if(g.edges[v][i]INF) path[i]=v; else path[i]=-1; } s[v]=1;path[v]=0; for(i=0;ig.n;i++) { mindis=INF; for(j=0;jg.n;j++) { if(s[j]==0dist[j]mindis) { u=j; mindis=dist[j]; } } s[u]=1; for(j=0;jg.n;j++) { if(s[j]==0) { if(g.edges[u][j]INFdist[u]+g.edges[u][j]dist[j]) { dist[j]=dist[u]+g.edges[u][j]; path[j]=u; } } } } Dispath(dist,path,s,g.n,v,to); } 4、 公园平面图; 5、 程序的测试结果和问题 进入系统 浏览学校景点 查找单个景点 查看学校平面示意图 推荐路线 景点最短路线 两点所有路径 退出 6、 实验总结。 身是数据结构中最复杂的一种,所以其有关操作的算法自然也就相对于其他数据结构更为复杂

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

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

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档