3.15学习总结
今天发现了一篇博客很有意思,他将地铁查询系统的算法实现分享了出来。
他的表结构与我们的区别很大,但是他的思路很清晰,与我们的类似,具体如下:
第一种情况中,得到查询输入的起始站和终点站,查询line表,在二者的Line属性相同的情况下,得到二者StopID差值的绝对值即可得到站数,然后输出其中的StopName。
第二种情况中,得到查询输入的起始站和终点站,查询line表,得到二者的Line属性,然后查询changestop表,将得到的Line属性作为条件查询得到
ChangeStopName属性的值,然后再回到第一张表line中,以起始站Line属性和ChangeStopName属性定位与起始站线路相同的中转站,然后求出起始站到中转站的StopName,再以终点站Line属性和ChangeStopName属性定位与终点站线路相同的中转站,求出中转站到终点站的StopName,最后合并到同一个list中即可。
第三种情况中,得到查询输入的起始站和终点站,查询line表,得到二者的Line属性,然后查询changestop表,将得到的Line属性作为条件查询,得到的值应当为空。在这种情况下,我们应该再次查询changestop表,将得到的起始站Line属性作为第一条记录的ID1,将得到的终点站Line属性作为第二条记录的ID2,求满足第一条记录ID2等于第二条记录ID1的线路ID并记录1。然后依旧在本张表中,以起始站Line属性作为ID1,将ID作为ID2,查询ChangeStopName,得到第一个中转点;然后以ID作为ID1,将终点站的Line属性作为ID2,查询ChangeStopName,得到第二个中转点。然后在line表中,查询起始站到第一个中转站的中间站名;之后查询第一个中转站到第二个中转站的中间站名;最后查新第二个中转站到终点站的站名。最后将三部分放入同一个list中。
与我们的思路基本一致,但是问题还是有,比如说有第三个中转站怎么办,今后的开发我们将围绕此博客展开,然后进行修改。

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现