作业帮 > 数学 > 作业

dijkstra算法 最短路径问题

来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/04/29 02:09:04
dijkstra算法 最短路径问题
话说dijkstra算法可以求解一个节点到其他各节点的最短路径,但是如果节点间存在多条等长的最短路径怎么对这个算法修改呢?不要floyd算法或者别的算法,就dijkstra算法.
迪杰斯特拉算法在程序中对路径的权值相等时进行判断,根据条件进行保存特定的路径,要不你就把所有权值相等的路径都保存下来,最后再根据你的条件进行保留.如:用一个List来保存相同路径设A-B的最小权值为MinWeight,当前路径的权值为Weight,在进行路径计算时会有这样的判断,if(MinWeight>Weight){MinWeight=Weight,修改原有路径.},你可以再加一个判断,if(MinWeight==Weight){MinWeight=Weight,在List中Add这条新路径},这个List可以在节点的Class中定义