我需要用一些节点 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写这个?任何人都可以帮助我吗?
问问题
1355 次
3 回答
1
提取名词你会发现你需要一个 Vertices/Node 类、一个 Edge 类和一个 Demand 类。这只是您解决方案的开始。您还将拥有一个 Graph 或 Network 类,其中包含一个节点列表、一个边列表和一个需求列表。然后你需要决定把使用节点、边和需求的处理方法放在哪里。
> A Node will consist of an integer.
> An Edge will consist of two Nodes
> and so on
这是一个例子
public class Node {
private int nodeNumber;
}
于 2013-07-15T12:50:37.750 回答
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;
}
}
ETC...
如果您考虑不实现自己的图形并从某个库中使用它,请查看以下问题:
于 2013-07-15T12:57:39.937 回答