首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

表示亲戚关系的算法

2012-02-29 
求助:表示亲戚关系的算法。求助:表示亲戚关系的算法。例如:我对亲戚的称呼和我堂兄对亲戚的称呼肯定不同,例

求助:表示亲戚关系的算法。
求助:表示亲戚关系的算法。例如:我对亲戚的称呼和我堂兄对亲戚的称呼肯定不同,例如:堂兄的爸爸就是我的叔父或者伯父。从我对亲戚的称呼到堂兄对亲戚的称呼的变化,甚至到姨丈对亲戚的称呼的变化,应该如何用程序来实现?

[解决办法]
首先定义一张家谱图。以树的概念来解释会好理解些
每个结点都有2个父结点,分别是自己的父、母
每个结点都可能有一个或多个子结点,则是自己的儿、女

这样通过家谱图上两个结点相对层次差和对方性别及年龄,就可以知道应该怎么称呼了。

只是这个数据结构很麻烦,算法是很简单的。
[解决办法]
结构不复杂吧 我们把每个节点分成几部分
struct{

struct{
sturct personinfo *n //子节点指针sturct per
soninfo *p //父节点指针
}childinfo[]; //子女信息 最好是一个链表 表头用来记录长度

struct{
//同上
sturct personinfo *?? //配偶
}....info[]; //配偶信息 同样是链表 但是得给个BOOL量 :)

}personinfo; //个人信息

这样设计应该可以了吧 然后再里面添加近性别 就可以得出输出结果了

如果数据很多 那好呀设计用于查找的结构 当然 姓名也可以:)

热点排行