2015-09-14 67 views
1

https://softwareengineering.stackexchange.com/questions/285418/name-of-data-structure-thats-tree-like-with-multiple-root-nodes建議使用的數據結構

我偶然發現上面如果有人回答了有關實施具有> 2個節點和我一棵樹一個問題用Java實現家譜的方式只是想獲得別人的關於如何思考最好使用具有兩個以上子節點的父節點實現家族樹。我曾看過二叉樹,但因爲他們只能有兩個孩子節點決定在其他地方進行研究。我還研究瞭如何使用森林數據結構來實現由多個節點組成的家譜族樹,這些節點具有0個多個孩子。可能可能使用林木,但是從我搜索過的大多數表示中發現,它看起來類似於不相關的集合,但我不希望父節點已經預先註定沒有孩子。 我希望我的意思是說得通的。 任何人能夠提供的建議或意見將不勝感激。

+0

取決於你想要做什麼樣的關係查詢:你是否想給孩子一個給定的父母,父母是給定的孩子,既不是,也不是其他孩子? –

+0

另外:你能提供一個鏈接到其他問題? –

+0

感謝您的輸入! 我想生成一個包含某個節點的信息並擁有2個以上子節點的某種數據結構實體的樹,這與BInary Tree結構不同。我希望能夠通過父節點訪問子節點,反之亦然,通過樹節點將顯示每個人的出生/結婚/死亡記錄。一個人明顯由可能有0-> 2個兄弟姐妹的單個節點代表。也許進一步從一位父母實施兄弟姐妹。 我想使用除ArrayList以外的數據結構。 – Tj895

回答

0

如果你想代表孩子的名單,只是有Person實例的列表中選擇Person類中:

class Person { 
    List<Person> children; 
    Person father; 
    Person mother; 
} 

然後只要你想給孩子列表中,您可以添加儘可能多的人。

我還在這裏添加了父母字段,讓您可以導航到父母。

一個提示:與你的建模非常徹底。家族關係有一些容易遺漏的情況,例如採用。 「父親」和「母親」幾乎肯定過於簡單。

+0

感謝您的建議,但如果我想使用樹結構而不是ArrayList,該怎麼辦? 對於這樣的項目,這正是我的觀點,可能有一個父母是另一個父母的另一個孩子的孩子,即瑪麗和薩姆來自一個父親,他們是相同的,不同的母親。我並不十分關心收養問題,儘管我真的沒有想到這一點。 – Tj895