Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 什么结构和算法用于构建系谱树?_Algorithm_Graph Algorithm_Directed Acyclic Graphs_Genealogy - Fatal编程技术网

Algorithm 什么结构和算法用于构建系谱树?

Algorithm 什么结构和算法用于构建系谱树?,algorithm,graph-algorithm,directed-acyclic-graphs,genealogy,Algorithm,Graph Algorithm,Directed Acyclic Graphs,Genealogy,我在一本书中发现,为了表示系谱(家族)树,最好使用带有拓扑排序的DAG(有向无环图),但该算法取决于输入数据的顺序 在谱系学中,所谓的索引(德语中表示“祖先表”)用于表示单个人的祖先;基本上,这是二叉树的适当线性化。系谱数据库通常使用所谓的系谱链接结构 这意味着伴侣(丈夫/妻子)是有联系的,被称为家庭。一个家庭与它的孩子联系在一起,孩子与它的父家庭联系在一起 我不知道有哪种特定的图形类型可以表示这一点。大多数程序使用一个族表和一个单独的表以及它们之间的适当链接对其进行自定义编程 家谱数据库通常遵

我在一本书中发现,为了表示系谱(家族)树,最好使用带有拓扑排序的DAG(有向无环图),但该算法取决于输入数据的顺序

在谱系学中,所谓的索引(德语中表示“祖先表”)用于表示单个人的祖先;基本上,这是二叉树的适当线性化。

系谱数据库通常使用所谓的系谱链接结构

这意味着伴侣(丈夫/妻子)是有联系的,被称为家庭。一个家庭与它的孩子联系在一起,孩子与它的父家庭联系在一起

我不知道有哪种特定的图形类型可以表示这一点。大多数程序使用一个族表和一个单独的表以及它们之间的适当链接对其进行自定义编程

家谱数据库通常遵循这种结构,以匹配为允许程序之间的数据传输而开发的数据库

在该标准中,您将特别看到FAM和INDI记录。FAM记录通过HUSB、妻子和孩子链接连接到INDI记录。INDI记录通过FAMS(配偶)和FAMC(父母)链接连接到FAM记录


使用此数据结构,您可以轻松读取GEDCOM文件并从其他系谱软件导入数据,还可以将数据导出到GEDCOM文件,以便其他系谱程序可以读取它。

要显示历史记录中发现的人与人之间的关系,请使用灵活的布局实现。在这个图中,每个节点都是一个人,有两种类型的顶点:一种描述婚姻(橙色),另一种描述父母关系(红色的“血缘”线)。可以看到一个图形示例。

DAG不起作用。可以看看以前的帖子


世系可以有复杂的关系,如双表兄妹婚姻、血缘关系等。这些关系可以在非sql数据库(如Neo4j)中轻松管理

请提供更多详情;有点不清楚到底问了什么。家谱树只是一棵树。非循环-是每个树的属性。是否指导-取决于您的需要。你需要用它做什么?你为什么问?