gpt4 book ai didi

Java:JGraphT:遍历节点

转载 作者:行者123 更新时间:2023-11-30 12:00:40 58 4
gpt4 key购买 nike

我正在尝试遍历所有节点,因此我可以将它们打印出来用于 graphviz。使用 JGraphT 库执行此操作的最佳方法是什么?

public static void main(String[] args) {
UndirectedGraph<String, DefaultEdge> g = new SimpleWeightedGraph<String, DefaultEdge>(DefaultEdge.class);

String odp = "ODP";
String cck = "CCK";
String mfe = "MFE";

g.addVertex(odp);
g.addVertex(cck);
g.addVertex(mfe);

g.addEdge(odp, cck);
g.addEdge(odp, mfe);

}

另外,如何添加边权重?

编辑:这似乎工作得很好。但是有更好的方法吗?

    Set<DefaultEdge> edges = g.edgeSet();

for (DefaultEdge e : edges) {
gv.addln(String.format("\"%s\" -> \"%s\"", g.getEdgeSource(e), g.getEdgeTarget(e)));
}

最佳答案

你可以使用函数toString()在你的图上打印图的所有信息,例如如果你有一个图h,你可以这样做:

System.out.println(h.toString());

通过这种方式,您将看到一条直线上的图形。另一方面,您可以可视化将坐标分配给顶点的图形,例如使用您的图形:

positionVertexAt(ODP, 130, 40);
positionVertexAt(CCK, 60, 20);
positionVertexAt(MFE, 240, 140);

问题,你必须实现一些功能,你在这个链接中有一个例子http://kickjava.com/src/org/jgrapht/demo/JGraphAdapterDemo.java.htm .

我认为有点困难,但您可以创建漂亮的图形可视化。

此外,您还可以使用网络 http://www.graphviz.org在这里你可以像你已经做的那样格式化你的图表信息,然后程序构建图表,就像在这个例子中,如果你输入这个代码(是网络示例的代码):

digraph finite_state_machine {
rankdir=LR;
size="8,5"
node [shape = doublecircle]; LR_0 LR_3 LR_4 LR_8;
node [shape = circle];
LR_0 -> LR_2 [ label = "SS(B)" ];
LR_0 -> LR_1 [ label = "SS(S)" ];
LR_1 -> LR_3 [ label = "S($end)" ];
LR_2 -> LR_6 [ label = "SS(b)" ];
LR_2 -> LR_5 [ label = "SS(a)" ];
LR_2 -> LR_4 [ label = "S(A)" ];
LR_5 -> LR_7 [ label = "S(b)" ];
LR_5 -> LR_5 [ label = "S(a)" ];
LR_6 -> LR_6 [ label = "S(b)" ];
LR_6 -> LR_5 [ label = "S(a)" ];
LR_7 -> LR_8 [ label = "S(b)" ];
LR_7 -> LR_5 [ label = "S(a)" ];
LR_8 -> LR_6 [ label = "S(b)" ];
LR_8 -> LR_5 [ label = "S(a)" ];

程序将构建此图:http://www.graphviz.org/content/fsm

我在这里给你写信:http://www.graphviz.org/ .希望我能帮到你,如果我找到更多信息或更简单的事情,我会告诉你。

Pd:对不起我的英语我希望你能理解。

关于Java:JGraphT:遍历节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1746054/

58 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com