我偶然发现上面有人回答了有关实现具有 > 2 个节点的树的问题,我只是想了解某人关于如何最好地实现具有超过两个子节点的父节点的家谱的想法。我曾查看过二叉树,但由于它们只能有两个子节点,因此决定在其他地方进行研究。我还研究了使用森林数据结构来实现由具有 0-多个子节点的多个节点组成的家族谱系树。可能可以使用森林树,但是从我搜索并发现的大多数表示形式来看,它看起来类似于一个不相交的集合,但我不希望父节点已经预先注定没有子节点。 我希望我说的有道理。 任何人能够提供的任何建议或评论将不胜感激。
如果您想表示子列表,只需在 Person 类中包含一个 Person 实例列表即可:
class Person {
List<Person> children;
Person father;
Person mother;
}
然后您可以将任意数量的人员添加到子列表中。
我还在此处添加了父亲和母亲字段,以便您导航到父母。
提示:建模要非常彻底。家庭关系中有一些容易被忽视的情况,例如采用。 “父亲”和“母亲”几乎肯定太简单了。