如何为Dijkstra生成加权图映射’;Java中文本文件的最短路径算法?
我有一个文本文件“NYRoadNetwork.txt”,其中包含加权图的以下信息: 第一行表示图中的节点数,即30 第二行表示连接图中任意两个节点的边数,即17 剩余部分是连接任意两个节点的边的权重,例如第三行中的“0 1 2”表示连接节点0和1的边的权重为2如何为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
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不是这样工作的。请访问并阅读了解更多信息,尤其是阅读