今天完成了北京地铁线路查询uni-app的开发,实现了两种路径算法:最少站点数(BFS)和最少换乘(两阶段BFS)。
遇到的问题:最少换乘算法返回结果不正确。测试"立水桥南→西苑"时,期望返回2次换乘(5→10→4),却错误返回3次换乘(5→13→10→4)。
解决方案:分析发现算法中visited机制导致过早排除正确路径。通过两个关键修改:
- 使用优先队列,按换乘次数排序,优先探索换乘少的路径
- 优化visited判断逻辑,允许同一站点在更少换乘时重新访问
最终算法能正确区分两种查询模式。
今天完成了北京地铁线路查询uni-app的开发,实现了两种路径算法:最少站点数(BFS)和最少换乘(两阶段BFS)。
遇到的问题:最少换乘算法返回结果不正确。测试"立水桥南→西苑"时,期望返回2次换乘(5→10→4),却错误返回3次换乘(5→13→10→4)。
解决方案:分析发现算法中visited机制导致过早排除正确路径。通过两个关键修改: