求助:表示亲戚关系的算法。
求助:表示亲戚关系的算法。例如:我对亲戚的称呼和我堂兄对亲戚的称呼肯定不同,例如:堂兄的爸爸就是我的叔父或者伯父。从我对亲戚的称呼到堂兄对亲戚的称呼的变化,甚至到姨丈对亲戚的称呼的变化,应该如何用程序来实现?
[解决办法]
首先定义一张家谱图。以树的概念来解释会好理解些
每个结点都有2个父结点,分别是自己的父、母
每个结点都可能有一个或多个子结点,则是自己的儿、女
这样通过家谱图上两个结点相对层次差和对方性别及年龄,就可以知道应该怎么称呼了。
只是这个数据结构很麻烦,算法是很简单的。
[解决办法]
结构不复杂吧 我们把每个节点分成几部分
struct{
struct{
sturct personinfo *n //子节点指针sturct per
soninfo *p //父节点指针
}childinfo[]; //子女信息 最好是一个链表 表头用来记录长度
struct{
//同上
sturct personinfo *?? //配偶
}....info[]; //配偶信息 同样是链表 但是得给个BOOL量 :)
}personinfo; //个人信息
这样设计应该可以了吧 然后再里面添加近性别 就可以得出输出结果了
如果数据很多 那好呀设计用于查找的结构 当然 姓名也可以:)