Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为Dijkstra生成加权图映射’;Java中文本文件的最短路径算法?_Java_Text Files_Dijkstra_Weighted Graph - Fatal编程技术网

如何为Dijkstra生成加权图映射’;Java中文本文件的最短路径算法?

如何为Dijkstra生成加权图映射’;Java中文本文件的最短路径算法?,java,text-files,dijkstra,weighted-graph,Java,Text Files,Dijkstra,Weighted Graph,我有一个文本文件“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

我有一个文本文件“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。

Vertex 0=new-Vertex(“0”)--这不是Java。但无论如何,你的问题是离题的。您没有编写任何解决问题的代码,我们也不会为您编写。StackOverflow不是这样工作的。请访问并阅读了解更多信息,尤其是阅读