簡體   English   中英

如何用Java中的文本文件為Dijkstra最短路徑算法生成加權圖的圖?

[英]How to generate a map of weighted graph for Dijkstra’s Shortest Path Algorithm from a text file in Java?

我有一個文本文件“ NYRoadNetwork.txt”,其中包含加權圖的以下信息:

第一行代表圖中的節點數,即30

第二行表示連接圖中任意兩個節點的邊數,即17

剩余部分是連接任意兩個節點的邊的權重。 第三行中的“ 0 1 2”表示邊緣連接節點0和1的權重為2。

30   
17   
0 1 2   
2 3 0    
4 5 1   
6 7 3   
8 9 4   
8 10 3  
0 11 2  
1 12 1  
13 14 3  
15 16 4   
17 18 2   
19 20 3   
19 21 3   
22 23 6    
24 25 1           
26 27 1            
28 29 1    

現在,我的問題是,從文本文件讀取數據后,如何編寫Java代碼以生成完整圖形,而不是輸入每個節點和每個邊緣?

僅供參考,這是我要修改的原始Java代碼的一部分。

    // mark all the vertices
    Vertex 0 = new Vertex("0");
    Vertex 1 = new Vertex("1");
    Vertex 2 = new Vertex("2");
    Vertex 3 = new Vertex("3");
    Vertex 4 = new Vertex("4"); ......

    // set the edges and weight
    0.adjacencies = new Edge[]{ new Edge(1, 2) };
    0.adjacencies = new Edge[]{ new Edge(11, 2) };
    1.adjacencies = new Edge[]{ new Edge(12, 1) };
    2.adjacencies = new Edge[]{ new Edge(3, 0) };
    4.adjacencies = new Edge[]{ new Edge(5, 1) };
    6.adjacencies = new Edge[]{ new Edge(7, 3) }; .......

您可以使用BufferedReader 文件中讀取一行

之后,使用String.split()方法將一行拆分為字符串數組。

我建議您在詢問此類問題之前,先通讀Java API。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM