2013-07-15 51 views
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中編寫此代碼?任何人都可以幫助我嗎?Graph的Java代碼及其需求

回答

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; 
} 
+0

THX,但由於我是新來的Java,你能幫助我更詳細我的意思是與上課一些Java代碼 – user2560937

0

如果你不想重新發明WEEL,你可以看看JGraphT。有一些examples可用,給你一些你如何使用它的想法。

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; 
    } 
} 

等等

如果你認爲沒有實現自己的圖形和一些庫用它來看看這個問題:

Good Java graph algorithm library?