Java 确定最短路径的难题

Java 确定最短路径的难题,java,puzzle,Java,Puzzle,今天我遇到了一个问题,我们必须确定源和目标之间的最短距离 有许多节点表示每个节点是一个城市中的一个机场(PSB图像),计数是城市之间的航班数量。现在我必须确定两个给定城市之间的最短路线 现在我想到的方法是,我将使用一个hashMap,它将源城市存储为键,目标城市存储为值 现在,为了确定两个给定城市之间的最短路径,我将搜索键集,以确定包含源城市的入口对象,并在HM like的值中搜索目标城市 我的HM将类似(参考图像以了解HM中的条目) 现在假设我被要求确定h和e之间的最短路线 根据我的算法,我将

今天我遇到了一个问题,我们必须确定源和目标之间的最短距离

有许多节点表示每个节点是一个城市中的一个机场(PSB图像),计数是城市之间的航班数量。现在我必须确定两个给定城市之间的最短路线

现在我想到的方法是,我将使用一个hashMap,它将源城市存储为键,目标城市存储为值

现在,为了确定两个给定城市之间的最短路径,我将搜索键集,以确定包含源城市的入口对象,并在HM like的值中搜索目标城市

我的HM将类似(参考图像以了解HM中的条目)

现在假设我被要求确定h和e之间的最短路线

根据我的算法,我将在hm的键集中搜索“h”城市

1) 我将获得
地图条目对象 现在我将遍历“e”城市的hm
valueSet
。 2) 我将获得
地图条目对象

现在,在我从第1步得到的entry.value
b
的帮助下,我将尝试从我从第2步得到的entry对象中关联密钥,因此我将确定h-b-e的距离比h-b-c-e短


我不仅想了解这个问题是否有更好的解决方案,还想了解任何一本书或链接,在那里我可以得到这样的设计问题。

看看这两种算法:和。
您的想法基本上相当不错,尽管它只适用于较小的图形和相当特定的条件。

您的示例是有效的路径吗?图像中的箭头有什么意义吗?看看a*算法或Dijkstra算法
hm.put(h,b);
hm.put(b,c);
hm.put(c,e);
hm.put(b,e);