Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用数据结构在Java中实现族谱的最佳方法_Java_Tree_Family Tree - Fatal编程技术网

使用数据结构在Java中实现族谱的最佳方法

使用数据结构在Java中实现族谱的最佳方法,java,tree,family-tree,Java,Tree,Family Tree,我偶然发现上面有人回答了一个关于实现一个>2个节点的树的问题,我只是想了解一下如何最好地实现一个父节点有两个以上子节点的族谱树。我在二叉树中查找过,但由于它们只能有两个子节点,所以决定在其他地方进行研究。我还研究了如何使用森林数据结构来实现一个家族系谱树,该家族系谱树由多个节点和0到多个子节点组成。可能会使用林树,但是从我搜索并找到的大多数表示来看,它看起来类似于一个不相交的集合,但我不希望父节点已经预先注定没有子节点。 我希望我说的有道理。 任何人能够提供的任何建议或评论都将不胜感激。如果您想

我偶然发现上面有人回答了一个关于实现一个>2个节点的树的问题,我只是想了解一下如何最好地实现一个父节点有两个以上子节点的族谱树。我在二叉树中查找过,但由于它们只能有两个子节点,所以决定在其他地方进行研究。我还研究了如何使用森林数据结构来实现一个家族系谱树,该家族系谱树由多个节点和0到多个子节点组成。可能会使用林树,但是从我搜索并找到的大多数表示来看,它看起来类似于一个不相交的集合,但我不希望父节点已经预先注定没有子节点。 我希望我说的有道理。
任何人能够提供的任何建议或评论都将不胜感激。

如果您想表示一个儿童列表,只需在Person类中创建一个Person实例列表:

class Person {
  List<Person> children;
  Person father;
  Person mother;
}
班级人员{
列出儿童名单;
人父;
人母;
}
然后,您可以将任意多的人添加到儿童列表中

我还在这里添加了父字段和母字段,以允许您导航到父字段和母字段


一个小贴士:对你的造型要彻底。家庭关系中有一些容易遗漏的案例,例如收养。“父亲”和“母亲”几乎肯定过于简单化。

取决于您希望进行的关系查找:您希望某个特定的父母有孩子,某个特定的孩子有父母,两者都有,都没有,还是其他?另外:您能提供指向其他问题的链接吗?谢谢您的输入!我想生成一个某种数据结构实体的树,它将包含关于一个节点的信息,并拥有两个以上的子节点,这与二叉树结构不同。我希望能够通过父节点访问子节点,反之亦然,通过父节点,树gui将显示每个人的出生/婚姻/死亡记录。一个人显然是由一个节点代表的,该节点可能有0->2个兄弟节点。可能进一步实现单亲兄弟姐妹。我想使用ArrayList以外的数据结构。这是关于森林数据结构的链接:请将问题链接添加到您的问题中。谢谢您的建议,但是如果我想使用树结构而不是ArrayList呢?这正是我在这类项目中的观点,可能有一位家长的孩子与另一位家长的孩子是兄弟姐妹,即玛丽和萨姆来自同一位父亲,是同一位母亲,也是不同的母亲。我不太关心收养问题,尽管我没有想到收养是真的。