图形的Java代码及其需求

图形的Java代码及其需求,java,graph,Java,Graph,我需要用一些节点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编写这个?有人能帮我吗?提取出名词,您将看到您需要一个顶点/节点类、一个边类和一个需求类。这只是解决方案的开始。您还将拥有一个由节点列表、边列表和需求列表组成的

我需要用一些节点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编写这个?有人能帮我吗?

提取出名词,您将看到您需要一个顶点/节点类、一个边类和一个需求类。这只是解决方案的开始。您还将拥有一个由节点列表、边列表和需求列表组成的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;
}

如果你不想重新发明weel,你可以研究一下。有一些可用的方法可以让您了解如何使用它。

作为一个起点,我可以向您推荐以下类结构:

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;
   }
}
类顶点{
字符串id;
列出边缘;
公共顶点(字符串id){
this.id=id;
边=新的ArrayList();
}
无效附加边(边e){
加入(e);
}
}
阶级边缘{
顶点对顶点;
顶点对顶点;
边(顶点从、顶点到){
this.fromVertex=from;
this.toVertex=to;
}
}
等等

如果你不想实现你自己的图表并从某个库中使用它,请看这个问题:


thx,但由于我是java新手,您能帮我更详细地了解一些java类代码吗