求无向图中求两点间的所有简单路径实验报告..docxVIP

求无向图中求两点间的所有简单路径实验报告..docx

  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文档。上传文档
查看更多
求无向图中求两点间的所有简单路径实验报告.

HUNAN UNIVERSITY课程实验报告题目:求无向图中求两点间的所有简单路径学生姓名:学生学号:专业班级:指导老师: 完成日期: 需求分析输入形式本程序要求用户首先输入一个结点总数,然后输入结点的城市编号(4位长的数字,例如电话区号,长沙是0731),以及高速公路连接的两所城市(用高速公路连接的两个城市编号标记),最后输入要查询所有简单路径的两座城市的名称。当用户输入不合法时,提示用户输入有误,并重新输入。输入具体格式如下:请输入城市总数:请输入高速公路的条数:请依次输入城市名称:请输入高速公路连接的两座城市:请输入需查询所有路径的两所城市的名称:输出形式从xx到xx的所有路径如下:将所有路径(城市编号组成)存至用户指定的文件中。程序功能该程序可以通过构建一个图用来表示各个城市之间是否有高速公路连通的关系,可以实现查询两城市间所有路径的功能测试数据①请输入城市总数: 3请依次输入城市编号:0001 0002 0003有几对城市间有高速公路?3请输入第一对连接城市的高速公路:0001 0002请输入第二对连接城市的高速公路:0002 0003请输入第三对连接城市的高速公路:0001 0003请输入请输入需查询所有路径的两所城市的名称:0001 0003从城市0001到0003的所有简单路径如下:001-003001-002-003所有路径已存入文件中。②请输入城市总数: 3请依次输入城市编号:001 002 003有几对城市间有高速公路?2请输入第一对连接城市的高速公路:001 002请输入第二对连接城市的高速公路:002 003请输入请输入需查询所有路径的两所城市的名称:0001 0003从城市0001到0003的所有简单路径如下: 001-002-003所有路径已存入文件中。③请输入城市总数: 3请依次输入城市编号:001 002 003有几对城市间有高速公路? 0请输入请输入需查询所有路径的两所城市的名称:0001 0003从城市0001到0003的无简单路径④请输入城市总数: 4请依次输入城市编号:001 002 003 004有几对城市间有高速公路? 5请输入第一对连接城市的高速公路:001 002请输入第二对连接城市的高速公路:002 003请输入第三对连接城市的高速公路:003 004请输入第四对连接城市的高速公路:001 004请输入第五对连接城市的高速公路:001 003请输入请输入需查询所有路径的两所城市的名称:0001 0004从城市0001到0003的所有简单路径如下:0001000300020002-00030003-0002-0004所有路径已存入文件中。⑤请输入城市总数: -1 结束程序概要设计抽象数据类型因为各个城市间的是否有高速公路连通的关系是非线性的,而且具有结构网状特性,并且高速公路是无向的,所以选择无向图来表示各个城市间的连通关系。图的ADT设计:数据对象:G=(V,E),其中V表示顶点集合,E表示边集合数据关系:VR={v,w| v,w∈V 且 P(v,w)} v,w表示从 v 到 w 的一条弧, v 为弧头,w 为弧尾。 基本操作:int n();//图中顶点个数int e();//图边数int first(int);//该点的第一条临边int next(int,int);//该点的第二条临边void setEdge(int,int,int);//为边设置权值void setMark(int ,int);//设置该顶点的标志值int getMark(int);//获得该顶点的标志值 图的顶点ADT设计: 数据对象:城市编号(占3位的字母数字串)数据关系:{vi|i=1,2,3……n} 基本操作: int position();//获取顶点位置 算法基本思想当用户输入完毕后,根据各城市间相应的关系构建一个无向图,并使用一个临接矩阵存储该图。考虑使用基于深度优先思想,在搜素过程中,每当访问一个节点,DFS就会递归访问它的所有未被访问的相邻节点。并通过相应的设置标志的方式使最终能不重复地走遍所有的简单路径。最后输出这些路径即可。程序基本流程该程序主要包括四个模块:输入模块:由用户输入城市总数,城市编号,高速公路编号;构建与存储模块:根据用户的输入构建无向图,并使用临接矩阵存储图;访问模块:对该图进行深度优先有哪些信誉好的足球投注网站,得到所有路径;输出模块:输出所有路径。详细设计物理数据类型①边的实现:class Edge{public:int vertex,weight;Edge(){ vertex=-1;weight=-1; }Edge(int v,intw){ vertex=v;weight=w;}};②图的相邻

文档评论(0)

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

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

1亿VIP精品文档

相关文档