将一个节点关联到另一个节点

时间:2013-04-23 08:45:50

标签: java data-structures

是以下代码:

class FamilyMember{
   String name;
   String type;
}

class Family{
   FamilyMember father;
   FamilyMemeber mother;
   List<FamilyMember> children;
}

将产生以下关系:

 +------------------+      +------------------+  
 |     Father       |------|     Mother       |  
 +------------------+  ^   +------------------+  
                       |                  
                       |                  
                       |                  
                       |                  
                       |                    
                 --------------       
                 |            |                   
                 |            |                   
                 |            |                   
                 |            |                   
 +------------------+       +------------------+  
 |     Son          |       |    Daughter      |  
 +------------------+       +------------------+  

由于不同家庭的孩子数量不同,因此每个家庭都有自己的家庭结构。

我想制作,它可以显示上述与可变数量的子项的关系。

4 个答案:

答案 0 :(得分:1)

class FamilyMember{
   String name;
   String type;
}

class Family{
   FamilyMember father;
   FamilyMemeber mother;
   List<FamilyMember> children;
}

答案 1 :(得分:1)

您只需要一个包含父/子关系的简单树。树中的每个节点都是一个人。

不要忘记;

  1. 两个孩子可能只分享一个共同的父母,而不是两个。 EG男人可以有两个不同女性的孩子,反之亦然。
  2. 所有的父母都是自己的孩子。
  3. 每个孩子都有两个父母,而不是普通的一个
  4. 具有以下数据的类应该足够了;

    public class Person {
    
      boolean female;
      Person father;
      Person mother;
      List<Person> children;
    
    }
    

答案 2 :(得分:0)

为什么不创建一个名为Family的类? 哪个可以有多个(n)孩子和1个或0个(悲伤的世界:/)父亲&amp;母。

您还可以将每个孩子与特定的母亲和父亲联系起来。

实际上我宁愿选择一个具有性别的类,其他所有类都应该继承它。由于每个人都喜欢名字和东西,因此从长远来看这应该更容易处理......

答案 3 :(得分:0)

class Parent
{
    String name;
    String gender;
}

class Family
{
    Map<Set<Parent, Parent>, String> child;
}