gpt4 book ai didi

java - 需要一些关于我的图形实现的建议

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:19:21 29 4
gpt4 key购买 nike

我想实现一些图形算法,这就是我创建一种图形框架的原因。到目前为止,我使用以下类非常轻松地实现了有向图

class Vertex {
String id;
String name;
}


class Edge {
String id;
Vertex source;
Vertex destination;
int weight;
}

class Graph {
List<Vertex> vertexes;
List<Edge> edges; }

测试时我创建:

Edge edge = new Edge(id, source_node, destination_node, weight)

这在有向图中完全没问题。然而在无向图中;我必须这样写;假设我们有 2 个节点,它们是 A、B,它们之间的权重是 10。因此,由于无向图的结构,我必须放置两条边;

Edge e1 = new Edge(id1, A, B, 10)
Edge e2 = new Edge(id2, B, A, 10)

这种类型的边缘创建既低效又详尽。

因此,我该如何修改我的代码,以便我不必在无向图的两个节点之间放置两条边。将无向图类型集成到我的代码中的最佳方法是什么?

感谢您的宝贵时间。

最佳答案

我最近遇到了一个有趣的 Java API,叫做 Blueprints通过 Tinkerpop您可以使用或查看以获得有关如何实现您自己的图形框架的一些想法。

我正在开发一个使用 JSON 的图形框架。这是由于图形的可变性质。图论中的算法倾向于将数据添加到其他算法使用的图中。因此,试图具体地描述一个图形本身就是有缺陷的。

关于java - 需要一些关于我的图形实现的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14812093/

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