找到所有可能的路线Java

时间:2013-05-17 15:28:59

标签: java routes

我正在做一个项目,我必须从文本文件中加载航班详细信息列表。我读取了文本文件并将3个值加载到hashmap中。 3个值采用此格式(Airport ID,To,From)。在与ID一起放入hashmap之前,To和From被放入一个列表中。

无法找到所选的To和From 中的所有可能路线。我已经阅读了Dijkstra的算法,但由于缺乏知识,我不知道如何应用它。

以下是我的代码示例,我可以找到直接航班和1个转机点的航班。

for (int i = 0; i < route.get("all").size(); i++) {
        String boardAir = route.get("all").get(i).from;
        String alightAir = route.get("all").get(i).to;
        if (boardAir.equals(ar.boardAirport) && alightAir.equals(ar.alightAirport)) {
            airline = route.get("all").get(i).id;
            System.out.println("Direct Airlines = " + alr.airline1.get(airline));
            System.out.println("From = " + ar.airport1.get(boardAir) + "\tDestination = " + ar.airport1.get(alightAir));
            System.out.println();
        } else {
            System.out.println("No direct flight found.");
        }
        if (boardAir.equals(ar.boardAirport)) {
            for (int j = 0; j < route.get(route.get("all").get(i).id).size(); j++) {
                String transfer = route.get(route.get("all").get(i).id).get(j).from;
                String finalDest = route.get(route.get("all").get(i).id).get(j).to;

            }
        }
    }

1 个答案:

答案 0 :(得分:1)

Dijkstra的算法将是一个很好的算法。如果你读了它,但仍然有问题,我会建议一些额外的资源。首先,普林斯顿大学的一本非常好的算法书完全在线。您可以在http://algs4.cs.princeton.edu/home/找到它,您应该参考的章节是第4章。它附带了示例代码,我认为它将为您提供足够的信息。否则,如果您更像是一名视觉学习者,请查看YouTube搜索“Dijkstra算法”。实际上有一些好的视频。