0

我正在做一个项目,我必须从文本文件中加载航班详细信息列表。我阅读了文本文件并将 3 个值加载到哈希图中。这 3 个值采用这种格式(机场 ID、收件人、发件人)。To 和 From 在与 ID 一起放入 hashmap 之前被放入一个列表中。

无法从选定的 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;

            }
        }
    }
4

1 回答 1

0

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

于 2013-05-17T15:33:37.767 回答