16. 求两点之间的最短路径

最短路径问题是经典图论问题之一。从工程意义上讲,最短路径问题是对大量工程问题的直观抽象。
最典型的例子是在地图上寻找最短驾车路径。
这里写图片描述
寻找从A到D的最短路径。

测试用例
用例1:
输入:
5,7
A,B,C,E,D
<0,3,30>,<0,1,10>,<0,2,20>,<1,3,10>,<1,2,5>,<2,4,30>,<3,4,20>
输出:A-B-E-D
用例2:
输入:
9,11
a,b,c,d,e,f,g,h,k
<0,1,6>,<0,2,4>,<0,3,5>,<1,4,1>,<2,4,1>,<4,6,8>,<4,7,7>,<3,5,2>,<5,7,4>,<6,8,1>,<7,8,4>
输出:a-c-e-g-k
用例3:
输入:
9,8
a,b,c,d,e,f,g,h,k
<0,1,10>,<1,2,20>,<2,3,30>,<3,4,40>,<4,5,50>,<5,6,60>,<6,7,70>,<7,8,80>
输出:a-b-c-d-e-f-g-h-k

解析:与14题一样需要注意一下字符串名称的输入问题。主要还是对Dijkstra算法的应用,下面是我参考的几篇文章与君分享:
1.【啊哈!算法】系列7:Dijkstra最短路算法
http://ahalei.blog.51cto.com/4767671/1387799
2. 迪杰斯特拉算法(可打印最短路径)
http://blog.csdn.net/cxllyg/article/details/7604812
3. Dijkstra算法的C语言实现
http://www.zeyes.org/study/clang/71.html
我刚开始是看了第一篇文章写的Dijkstra算法结构然后配合第二篇文章实现路径打印,结果提交到OJ上跟我说无结果输出!!!如下图
这里写图片描述
东悄悄西看看debug好久,后来索性换篇文章看看其他的Dijkstra算法的C实现,于是用了第三篇文章的结构与第二篇的结合,结果有输出了,但是还是WA了,一看有结果明显输出错误,如用例3最后的”K”就无法打印出来,似乎是他的Dijkstra算法某些细节有问题,但是第一篇的就没毛病,于是将第一篇与第二篇进行比对,以第三篇为主体结构,某些细节上参考第一篇,最后终于AC了。
这里写图片描述

代码

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值