我需要写一个图表,其中一些节点为v = {1,2,3,4,5,6,7},边E = {(1-2),(2-3),(3,4) ),(4-7),(3-6),(2-6),(5-6),(1-5)}并且还有一些要求D =(s,d)= {(1-3 ),(2-3),(4-5)。 (7-7),(6-4),(2-7)}这是一个具有确切来源的路径,是小型网络的目的地。 我怎么能用Java写这个呢?有人可以帮帮我吗?
答案 0 :(得分:1)
提取名词,您将看到需要Vertices / Node类,Edge类和Demand类。这只是解决方案的开始。您还将拥有一个图表或网络类,其中包含节点列表,边缘列表和需求列表。然后,您需要决定在何处放置使用节点,边和需求的处理方法。
> A Node will consist of an integer.
> An Edge will consist of two Nodes
> and so on
这是一个例子
public class Node {
private int nodeNumber;
}
答案 1 :(得分:0)
答案 2 :(得分:0)
作为一个起点,我可以提出以下类结构:
class Vertex{
String id;
List<Edge> edges;
public Vertex(String id){
this.id = id;
edges = new ArrayList<Edge>();
}
void addEdge(Edge e){
edges.add(e);
}
}
class Edge{
Vertex fromVertex;
Vertex toVertex;
Edge(Vertex from, Vertex to){
this.fromVertex = from;
this.toVertex = to;
}
}
等...
如果您考虑不实施自己的图表并在某个库中使用它,请查看以下问题: