如何使用jgrapht库标记或着色顶点?

问题描述 投票:2回答:3

我有兴趣使用jgrapht提供的各种类型的有向图和无向图类编写图着色算法。他们似乎都不容易在图类本身中执行此操作(例如DirectedSimpleGraph)。

我的目标是能够遍历图形对象,并向顶点添加/更改各种标签或颜色,而无需将顶点信息存储在对象本身之外,即我想使用或创建诸如“ DirectedSimpleGraph.setColorToVertex(v,c),其中v是顶点。c是可能定义为整数的颜色。任何线索或最佳实践建议将不胜感激。

java vertex jgrapht labeling graph-coloring
3个回答
1
投票

能够为顶点着色或标记的典型方法是向jgrapht提供自己的Vertex类,该类存储所需的内容。例如,>

public class MyVertex {
  public String colour;
}

SimpleGraph<MyVertex, DefaultEdge> g = 
    new SimpleGraph<MyVertex,DefaultEdge>(DefaultEdge.class);
MyVertex v1 = new MyVertex();
MyVertex v2 = new MyVertex();

g.addVertex(v1);
g.addVertex(v2);

DefaultEdge edge = g.addEdge(v1, v2);

//traverse graph
Graphs.getOppositeVertex(g, edge, v1).colour = "red";

这样,您无需使用外部机制(例如哈希图)来跟踪顶点颜色/标签。


0
投票

看起来像jgrapht库https://github.com/jgrapht/jgrapht正在积极发展中。也许您可以联系开发人员?请查看github链接上的自述文件以了解更多信息。


0
投票

我想使用或创建诸如“ DirectedSimpleGraph.setColorToVertex(v,c)的方法,其中v是一个顶点

© www.soinside.com 2019 - 2024. All rights reserved.