结对作业4

开始尝试结对作业的基础逻辑,先将地铁线路根据换乘点转化成无向图,准备运用迪杰斯特拉算法完成最小换乘。

复制代码
int i=0;
        Connection connection = util.getConnection();
        PreparedStatement preparedStatement=null;
        ResultSet rs=null;
        try {

            String sql ="WITH RECURSIVE transfer (start_station, stop_station, stops, path) AS (\n" +
                    "    SELECT station_name, next_station, 1, CAST(CONCAT(line_name,station_name , '->', line_name,next_station) AS CHAR(1000))\n" +
                    "    FROM bj_subway WHERE station_name = ?\n" +
                    "    UNION ALL\n" +
                    "    SELECT p.start_station, e.next_station, stops + 1, CONCAT(p.path, '->', e.line_name, e.next_station)\n" +
                    "    FROM transfer p\n" +
                    "             JOIN bj_subway e\n" +
                    "                  ON p.stop_station = e.station_name AND (INSTR(p.path, e.next_station) = 0)\n" +
                    ")\n" +
                    "SELECT * FROM transfer WHERE stop_station = ?;\n";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1,station1);
            preparedStatement.setString(2,station2);
            rs = preparedStatement.executeQuery();

            while(rs.next())
            {
                i++;
                if (station1.equals(rs.getObject(1))&&station2.equals((rs.getObject(2)))){
复制代码

 

posted @   奶油冰激凌  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2023-05-06 Day16
点击右上角即可分享
微信分享提示