2011-10-22 61 views
3

我有一個定向的未加權圖。給出節點數量和節點之間的所有鏈路。我試圖用矢量數組完成任務,但是java不支持它。 ArrayList和Vectors支持隨機訪問迭代器,但無法在java中完成,因爲我是新手。我不想爲它使用二維矩陣。我想將它實現爲N個給定節點的數組,其中每個節點都有一個連接到它的節點的列表。請有人提供一個僞代碼或任何可以幫助我的東西。例如,給出的曲線圖如下:如何在覈心java中實現圖形?

5 
3 4 
4 2 
1 5 
4 3 
1 3 
2 5 

這裏給出了編號爲1到5的5個節點。以下是從第一個節點到第二個節點的有向邊。我想將它表示爲圖的鄰接列表。任何人都可以實施它嗎?

+2

你不妨看看那是一列列在本頁面右下方計算器上的相關內容。另外,如果由於缺乏對Java庫的知識(如集合庫(ArrayLists,Vectors,...)的知識而受到阻礙,請儘量使用Google的某些教程,以便您可以使用這些有用的工具。此外,相關的內容鏈接會告訴你關於爲圖創建和操作專門構建的第三方庫。 –

+0

我已經在谷歌以及在這個網站上搜索這個,但我找不到。最後我要問自己的問題。另外我不想使用第三方庫。 –

+0

同樣,即使只是爲了讓您知道如何開始以及您需要獲得什麼知識庫,相關內容也會對您有用。即使你仍然無法弄清楚任務,這些信息至少可以幫助你寫出更具知識性和更具體的問題。 –

回答

4

adjacency list例如Map<Node, List<Node>>List<List<Node>>可能是合適的。

附錄:在使用Java Collections,它可能是有益的注意,MapListinterfaces是提供個性化的方法,而你可能要根據您要使用您的數據來實現的算法的要求來選擇具體implementations結構體。

附錄:有一個相關示例here

+0

是的,我試圖用arraylist的arraylist與鄰接列表來做,但無法用迭代器在其中插入值。 –

+1

啊,你會想編輯你的問題,包括一個[sscce](http://sscce.org/),它展示了你描述的問題。 – trashgod

+0

我已經鏈接到上面的一個例子。 – trashgod

1

您可以使用許多集合數據結構,特別是散列表或集合,以達到您的目的。 Java爲您提供了大量的集合通用容器(HashMap-s,ArrayList-s等)。我不是Java專家,但搜索Java Collections給出了很多結果,例如, this tutorial

1

太糟糕了,您要求實施有向未加權圖,而不是直接使用圖。否則,我會建議你使用一個易於使用的框架來處理幾乎所有與網絡/圖形有關的所謂JUNG2。您可以在GUI或非GUI模式下使用它。它會爲你節省很多時間。以下是它的教程鏈接:

http://www.grotto-networking.com/JUNG/JUNG2-Tutorial.pdf