- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构实验六简单路径
HUNAN UNIVERSITY
课程实验报告
题 目: 简单路径
学生姓名
学生学号
专业班级
指导老师 李 晓 鸿
完 成 日 期 2 0 1 5年 12 月 12日
一、需求分析
1.程序的功能
该程序可以通过构建一个图用来表示各个城市之间是否有高速公路连通的关系,可以实现查询两城市间所有路径的功能,如果存在路径则输出。
2.输入的形式
本程序要求用户首先输入一个结点总数,然后输入结点的城市编号,最后输入要查询所有简单路径的两座城市的名称。当用户输入不合法时,提示用户输入有误,并重新输入。输入具体格式如下:
请输入城市总数:n(大于零的整数)
请输入输入城市1名称:
请输入输入城市2名称:
请输入输入城市3名称:
......
请输入输入城市n名称:
请输入城市间的高速公路:
请输入两所城市的名称:
输出的形式
①若有路径
从城市A到城市B的所有路径如下:
//路径1
//路径2
②若无路径
两城市不连通
测试数据
①.正常的输入:
请输入城市总数:4
请输入输入城市1名称:0001
请输入输入城市2名称:0002
请输入输入城市3名称:0003
请输入输入城市4名称:0004
请输入城市间的高速公路:0001 0002
请输入城市间的高速公路:0002 0003
请输入城市间的高速公路:0003 0004
请输入城市间的高速公路:0001 0004
请输入城市间的高速公路:0 0
请输入两所城市的名称:0001 0004
输出:
两城市间的路径为:0001 0002 0003 0004
两城市间的路径为:0001 0004
②.正常的输入:
请输入城市总数:5
请输入输入城市1名称:c1
请输入输入城市2名称:c2
请输入输入城市3名称:c3
请输入输入城市4名称:c4
请输入输入城市5名称:c5
请输入城市间的高速公路:c1 c2
请输入城市间的高速公路:c1 c5
请输入城市间的高速公路:c5 c4
请输入城市间的高速公路:c4 c3
请输入城市间的高速公路:0 0
请输入两所城市的名称:c2 c4
输出:
两城市间的路径为:c2 c1 c5 c4
③.无路径情况:
请输入城市总数:3
请输入输入城市1名称:a
请输入输入城市2名称:b
请输入输入城市3名称:c
请输入城市间的高速公路:a b
请输入城市间的高速公路:0 0
请输入两所城市的名称:a c
输出:
两城市不连通
④.错误的城市个数
请输入城市总数:-1
输入错误重新输入(大于零的整数)
请输入城市总数 2
请输入输入城市1名称:1
请输入输入城市2名称:2
请输入城市间的高速公路:1 2
请输入城市间的高速公路:0 0
请输入两所城市的名称:1 2
输出:
两城市的路径为 1 2
⑤.存在自返路径
请输入城市总数:2
请输入输入城市1名称:上海
请输入输入城市2名称:长沙
请输入城市间的高速公路:上海 上海
请输入城市间的高速公路:上海 长沙
请输入两所城市的名称:长沙 上海
输出:
长沙 上海
二、概要设计
1.抽象数据类型
因为各个结点之间是网状结构,那么一个结点会和多个结点连接,因此我们使用图来存储各个结点的信息。同时我们需要一个数据结构来搜索图,该数据结构满足先进后出,所以使用栈来实现。
ADT
ADT Stack{
数据对象:D={ ai | ai ∈binNode, i=1,2,...,n, n≥0
数据关系:R1={ ai-1, ai | ai-1, ai∈D, i=2,...,n }
约定an 端为栈顶,a1 端为栈底。
若栈中没有元素,则为空栈。
基本操作:
bool push(const BinNodeitem);
bool pop(BinNodeit);
bool topValue(BinNodeit);
int length();const;}
ADT Graph{
数据对象:V,R(图是由一个顶点集 V 和一个弧集 R构成的数据结构)
数据关系:Graph = (V,R) VR={v,w|v,w∈V且P(v,w)}
基本操作:int n() =0; // 返回图节点数
文档评论(0)