当前位置:首页 > 高性能开发 > 数据结构与算法

思忖“手绘家谱”的算法

优良自学吧提供思忖“手绘家谱”的算法,思考“手绘家谱”的算法1.每个节点分别延伸其父 母 配偶 子女,将新延伸出的节点加入“待延伸”队列。2.不断从队列中取出节点进行“步骤1”的操作。 每次延伸出的节点类型可以选择,比如到头了就可以不再延伸父母节点。2.1.当全部成员延伸完毕时,可以考虑合并一些

思考“手绘家谱”的算法

1.每个节点分别延伸其 配偶 子女,将新延伸出的节点加入“待延伸”队列。
最优子结构以及队列
2.不断从队列中取出节点进行“步骤1”的操作。 每次延伸出的节点类型可以选择,比如到头了就可以不再延伸父母节点。
2.1.当全部成员延伸完毕时,可以考虑合并一些无歧义的母子关系联系。比如一个家庭是一夫一妻,那么擦除其下所有子女与母亲的连线,只保留与父亲的连线(子随父姓)。
化简前后的对比

3.配偶:现任使用实线连接,前任使用虚线连接。
4.节点格式: 称呼|身份证姓名(普及曾用名),比我姥爷的节点姥爷|张银(马宝河)在村子里提张银没人知道,一说马宝河就清楚了;因为姥爷是过继给本村的马姓姑父为子,故而本村人只知道其马氏名讳,鲜知其祖宗源流。这就属于普及的曾用名。
4.1.从“我”对成员节点的“称呼”,可以得知该成员的性别,进而判断其之于子节点是父或母。
4.2.一般从姓氏上也能看出父母(子随父姓)。

5.称呼:以“我”为准。可以结合“称呼”、“三姑六婆”等APP进行计算。

6.一般情况下,旁系血亲节点的配偶节点不再向上延伸父母节点(偶有特例,比如老婶开诊所,其母同住,我每次去打针,都会见面;这样的情况,就有必要延伸一级)。所以不必担心旁系血亲及其配偶双方父母同示一图带来的连线混乱。

7.“我”子女的媳婿之父母需要示之图上,“我”配偶的父母、兄弟也当示之图上。这些很重要的。
(现在说还有点儿早,毕竟还没女朋友~)

普及《婚姻法》
三代以内旁系血亲是指:伯、叔、姑、舅、姨、侄子 ( 女 ) 、外甥、外甥女、堂兄弟姐妹、姑舅表兄弟姐妹、姨表兄弟姐妹等。双胞胎、多胞胎也属于旁系血亲。我国婚姻法禁止直系血亲和三代以内旁系血亲通婚。

8.考虑未来可以为节点加上头像,那么黑白头像可作为已殁标记。

9.过继关系使用箭头表示。
过继关系

10.关于成图美观问题
曲线的美
目前看起来,曲线会比直线优美一些。可以尝试。

11.如有余力,考虑实现成一个手机APP,只需输入一些文字数据,便能自动生成一张家谱图。
项目地址:family-tree-generate
目前推荐使用免费的ProcessOn制作家谱图。其页面大小可无限扩展,线型、可选箭头、圆形(基础图形)等支持较佳,成图美观。


(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢