【数据结构】旅游景点咨询系统的设计与实现(图,DFS,迪杰斯特拉算法)

1.问题描述:

创建一个至少有15个点的有向网表示的某个旅游景点的导游图。顶点代表景点,类型为字符串(例如,泰山导游图:“天地广场门”,“十八盘”,“冯玉祥墓”,“桃花峪门”,“中天门”,“南天门”,“玉皇顶”等),弧表示两个景点之间可以直达,弧上的权值表示两个景点之间的路程(公里数),弧上还有到达方法的信息(有步行和索道两种)。建立一个游客咨询系统。

2.基本要求

(1)创建图的存储结构。

(2)输入两个景点名,就可以得到从一个景点到达另一个景点的所有简单路径、相应路径的路程公里数、行走的方法(每一段是步行,还是坐索道);

(3)输入两个景点名,就可以得到其最短路径,即:路程最短的行进方法;

 

3.思路:

图论中建立邻接矩阵、DFS深度优先遍历、迪杰斯特拉算法的简单应用,除DFS略有技巧性外皆为课本上的算法。首先输入景点数和路径数、各景点名、各路径的顶点下标、权值和行进方式构建图的邻接矩阵,运用迪杰斯特拉算法构建最短路(由于每次调用一次迪杰斯特拉算法和打表的算法复杂度都为O(n^3)故直接将每个点到其他点的最短路打表存二维数组名之后取用即可,数组存取复杂度O(1))。输入起点终点信息,DFS遍历输出所有路径和总路程,再输出最短路径。

 

4.代码及数据:

 


                
  • 5
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值