2011-11-22 106 views
1

請看看:我應該如何在Java中實現這個Tree Like概念?

Tree Like architecture

所以基本上我有這樣架構的樹,是不是一個真正的樹,因爲根節點可能會或可能不會隨時可用。

根連接到許多兒童,反過來可能會或可能不會連接到其他孩子。一個特定級別的所有節點或具有不同id的類似對象作爲其標識符。

我想實現它作爲一棵樹,但隨後與大型數據集可能很難搜索特定的節點。或者我應該在每個級別上創建一個Map對象並基於它們的關鍵字,如果它存在或不存在,我將能夠與父節點進行關聯。

或者你認爲還有另一種更好的方法來做到這一點,因爲如果我把它看作一棵樹,它會隨機增長,再加上它的擴展我有一個問題,有些孩子會有許多父節點,這可能是在樹中不可能?

請提出一些實施的想法?

+0

是什麼樹實際上代表了什麼?你能否提供一個具體的例子來說明你將如何搜索它以及你期望得到什麼?實質上,每個OO應用程序都是某種級別的樹(或圖),所以如果沒有關於問題域的更多具體細節,很難回答這個問題。 – Adamski

+1

如果一個孩子可以有多個父母,那絕對不是一棵樹。 – Tudor

+0

@Adamski,實際上每個節點都是一個對象。其實我很困惑如何根據他們的關係建立關係。就像你有很多對象是隨機連接在一起的(但是非常類似於樹狀結構),我需要建立一些結構,通過它我可以知道它們之間的關係。這就像我們有頂點和邊緣定義它們的連接。所以我正在尋找一些關於如何定義這些邊緣的想法,以便我可以跟蹤他們的孩子和父母的結構......我希望你知道我要問什麼? – Johnydep

回答

2

你可以代表它作爲一種面向圖形:每個節點有其父母入邊和出邊到其子:

public class Node { 
    private List<Object> parents; // incoming 
    private List<Object> children; // outgoing 
} 
+0

謝謝,這是有道理的...我認爲你的想法將工作... – Johnydep