java - 创建有向图

标签 java algorithm graph

我想创建一个有向图,我有三个变量:String x,y,z 第一个顶点包含 3 个变量,下一个包含接下来的 3 个,直到循环结束

我有这个:

BufferedReader reader = new BufferedReader(
    new StringReader(contentTextArea.getText()));

try {
  str =reader.readLine();

  while(str != null) {
    String splitted[] = str.split("\\|");
    String x = splitted[0].trim();
    String y = splitted[1].trim();
    String z = splitted[2].trim();
  }          
}

所以这段代码每次都给我 3 个字符串,我想每次都创建一个顶点和一条边,这将在最后创建一个图形。 代码可能是这样的,但是我不知道里面写什么 createVertex (String x,y,z),addEdge () 方法。

public class graph {  
  createVertex (String x,y,z);
  addEdge ();
}

最佳答案

如果你想创建一个线条,即每条线代表一个顶点,一条边由两个连续的顶点组成,你可以创建/使用一个 Vertex 类代表一个顶点和一个 Edge 具有对构成其端点的 2 个顶点的引用的类。

在您的图形类中,您可以只拥有一个顶点列表和一个边列表。 createVertex() 可以向列表中添加一个新顶点,而 addEdge() 将使用列表中的最后两个顶点创建一条边(如果至少有两个!) 并将边放入边列表中。

如果您以后有由特定顶点(即不是最后两个顶点)形成的边,您可以使用列表中每个顶点的索引来引用它们并通过这些索引定义边(即从顶点 0 到边5 可以定义为 0,5)。

关于java - 创建有向图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5618653/

相关文章:

java - 发生 Tomcat 关闭时如何进行最终的数据库推送?

java - 使用Scala语言的MWE2工作流组件

algorithm - 匹配误差最低的两个图

c++ - 最低共同祖先( boost 图)

algorithm - 判断一个图是否是半连通的

Java - 无论 JRE 版本如何,查找正在使用的 tzdata 版本

java - Android 检索联系人数据时出现 RuntimeException

algorithm - 寻找不同基数的数字表示

algorithm - 程序的时间复杂度

algorithm - Eugene Myers 的差异算法 : Finding the Longest Common Subsequence of "A" and "B"