2013-05-17 181 views
0

我正在做一個項目,我必須從文本文件中加載航班詳細信息列表。我讀了文本文件,並將3個值加載到散列表中。這3個值是這種格式(機場ID,收件人,發件人)。 To和From被放到一個列表中,然後放入hashmap和ID中。查找所有可能的路線Java

我是在找到從所選的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; 

      } 
     } 
    } 
+0

刪除註釋的代碼,會更好地閱讀和理解。 –

回答

1

Dijkstra算法將是一個很好的算法來研究。如果您仔細閱讀並且仍然遇到問題,我會建議一些額外的資源。首先,普林斯頓大學有一本非常好的算法書,它完全在線。你可以在http://algs4.cs.princeton.edu/home/找到,你應該參考的章節是第4章。它帶有示例代碼,我認爲它會爲你提供足夠的信息。否則,如果你更多的是視覺學習者,請查看YouTube搜索「Dijkstra's Algorithm」。那裏實際上有一些好的vids。