0

いくつかのノード 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で書くにはどうすればよいですか?誰でも私を助けてもらえますか?

4

3 に答える 3

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;
}
于 2013-07-15T12:50:37.750 に答える
0

再発明したくない場合は、 JGraphT を調べることができます。どのように使用できるかのアイデアを提供するいくつかの使用可能な例があります。

于 2013-07-15T12:52:50.377 に答える
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;
   }
}

等...

独自のグラフを実装せず、ライブラリから使用することを検討している場合は、次の質問をご覧ください。

優れた Java グラフ アルゴリズム ライブラリ?

于 2013-07-15T12:57:39.937 に答える