我想实现一些图形算法,这就是我创建一种图形框架的原因。到目前为止,我使用以下类非常容易地实现了有向图;
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)
这种类型的边缘创建既低效又详尽。
因此,我如何修改我的代码,以便我不必在两个节点之间放置两条边以用于无向图。将无向图类型也集成到我的代码中的最佳方法是什么?
谢谢你的时间。