2015-09-14 69 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