我有兴趣使用jgrapht提供的各种类型的有向图和无向图类编写图着色算法。他们似乎都不容易在图类本身中执行此操作(例如DirectedSimpleGraph)。
我的目标是能够遍历图形对象,并向顶点添加/更改各种标签或颜色,而无需将顶点信息存储在对象本身之外,即我想使用或创建诸如“ DirectedSimpleGraph.setColorToVertex(v,c),其中v是顶点。c是可能定义为整数的颜色。任何线索或最佳实践建议将不胜感激。
能够为顶点着色或标记的典型方法是向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";
这样,您无需使用外部机制(例如哈希图)来跟踪顶点颜色/标签。
看起来像jgrapht库https://github.com/jgrapht/jgrapht正在积极发展中。也许您可以联系开发人员?请查看github链接上的自述文件以了解更多信息。
我想使用或创建诸如“ DirectedSimpleGraph.setColorToVertex(v,c)的方法,其中v是一个顶点