首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >家谱程序逻辑

家谱程序逻辑
EN

Stack Overflow用户
提问于 2010-12-26 18:52:28
回答 3查看 11.8K关注 0票数 6

我正在用Java创建一个家庭树程序,或者至少尝试。我开发了几门课程:

  • 人名、性别、年龄等人名。
  • FamilyMember -扩展Person getter和setter,用于设置父母和子女
  • 家庭--包括多个家庭成员和添加移除成员的方法。
  • FamilyTree是设置关系的主要类。

我有两个主要问题:

1)我需要确定人与人之间的关系。目前我正在做:

代码语言:javascript
运行
复制
FamilyMember A, FamilyMember B
B.setMother(A);
A.setChild(B);

上面的例子是为了建立母子关系。

这看起来很笨重。实现所有关系的时间越来越长。对于如何以较少的程序方式实现多个关系,有什么想法吗?

2)我必须能够展示家谱。我该怎么做?有什么定制的课程可以让生活更轻松吗?

谢谢你抽出时间..。

EN

Stack Overflow用户

回答已采纳

发布于 2010-12-26 20:52:55

关于绘制结构,如果显示超过2代,则很难避免冲突(行交叉)。所以,如果你的申请允许你把它减少到2,那就太好了。我编写了一些使用这种表示形式的程序,或者垂直表示:

或横向:

如果您需要同时显示更多代,则需要提出其他表示,它们可能会变得非常稀疏,这样您就可以在同一级别上向同代的每个人展示。

关于如何将关系表示为数据结构--嗯,这很麻烦。最简单、最干净的事情是,任何两个分别是同一个人的母亲和父亲的人都是“已婚”的。但是你想如何代表多个合作伙伴,孩子等等呢?如果不知道你的程序应该做什么,这是很难回答的。也许你的数据集没有这些复杂的情况。但是,如果是这样的话,最好先考虑一下棘手的情况--简单的表示不适合简单地扩展以涵盖困难的情况。

(用手)画出一些你预料到的最困难的案例;这将建议你需要记录什么样的数据,以及如何组织它。你在画的时候所做的选择(谁是第一位的,每个节点要使用什么符号和文本等等)将通知您的数据结构决策。

设置B的母亲和A的孩子似乎都是多余的--冗余会导致错误--选择一个。哪个?当你设定B的母亲(A的性别)时,我们知道任何一个人都需要双亲,而不是0或更多的孩子。所以,我倾向于只设置B的母亲,你可以通过遍历所有的方法来找出任何一个人的子代,来选择其父母与所讨论的个体相等的集合。事实上,存储父母关系(相对于简单的父母关系)可能会减少重复(假设您将性别与个体存储在一起)。

票数 4
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4534988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档