CN112148727A - 家谱树节点类坐标数据结构 - Google Patents
家谱树节点类坐标数据结构 Download PDFInfo
- Publication number
- CN112148727A CN112148727A CN201910566217.1A CN201910566217A CN112148727A CN 112148727 A CN112148727 A CN 112148727A CN 201910566217 A CN201910566217 A CN 201910566217A CN 112148727 A CN112148727 A CN 112148727A
- Authority
- CN
- China
- Prior art keywords
- nodes
- tree
- node
- coordinate
- family
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Abstract
家谱树节点类坐标数据结构。成员节点node[x,y]的x坐标由家谱的世辈确定,y坐标为相同世辈相邻成员的ID,同时y坐标是指向上一个成员的指针。x坐标值的计算方法。每个家谱的世辈是严格有序地依据自然数从第一代依次递进到第N代。家谱在录入过程中世辈是可以向上、向下延拓。y坐标值的计算方法。由于同世辈节点在家谱中的位次是严格按照宗族伦理秩序规则确定的,为了避免在插入节点后导致后续位次节点的y坐标值都需要变动,引入了同世辈节点指针作为y坐标的定义,即相邻两个节点左节点的ID为右节点的y坐标值,依次类推。有效解决家谱这种多层级树状节点中在处理节点之间的关系时,检索递归层级太多,处理数据量太大而导致效率低下的问题。实现高效率地对家谱树节点定位、新节点的插入、节点删除、子树迁移、删除以及确定节点与节点之间亲疏关系等。
Description
一、技术领域
一种将传统家谱处理为电子化家谱时针对树状结构数据递归性能差而设计的一种数据结构,用于快速对树状结构中节点进行定位、确认节点与节点关系,实现高效节点插入、节点修改、节点删除、子树迁移、子树删除等操作。
二、背景技术
家谱中的成员节点分布是典型的树状结构,而且此类树形结构和二叉树等常见的树状结构不同,成员节点的分布是不均匀的。针对树状结构通常采用的数组形式或数据链形式,常见的树状结构(如商品的各级分类)层级相对较少,通常家谱是几十代甚至上百代,成员几千到几十万,甚至更多,这种层级非常多,成员节点数量巨大的情况,就会遇到在处理节点之间的关系时,检索递归层级太多,处理数据量太大而导致效率低下的问题。家谱树节点类坐标数据结构采用二维坐标法,同时结合同维度指针实现快速定位家谱成员、获取成员与成员的血缘关系等操作。
三、发明内容
1、发明目的:
解决家谱这种多层级树状节点中在处理节点之间的关系时,检索递归层级太多,处理数据量太大而导致效率低下的问题。实现高效率地对家谱树节点定位、新节点的插入、节点删除、子树迁移、子树删除以及确定节点与节点之间亲疏关系等。
2、技术解决方案:
设计出家谱树节点类坐标数据结构。成员节点node[x,y],其中x坐标由家谱的世辈ID与家谱世辈实际代数构成的函数f(ID,factOrder)确定,y坐标为相同世辈相邻成员的ID,同时y坐标是指向上一个成员的指针。
x坐标值的计算方法。每个家谱的世辈次序是严格有序地依据自然数从第一代依次递进到第N代。家谱在录入过程中世辈次序向上或向下延拓。世辈ID和世辈次序构成函数对应关系,x=f(ID,factOrder)。
y坐标值的计算方法。由于同世辈节点在家谱中的位次是严格按照宗族伦理秩序规则确定的,为了避免在插入节点后导致后续位次节点的y坐标值需要大规模变动,引入了同世辈节点指针作为y坐标的定义,即相邻两个节点左节点的ID为右节点的y坐标值,依次类推。指针值依据中国传统家族伦理秩序的尊卑等级计算。
利用家谱树节点类坐标数据结构可以有效解决多层级大数据树状节点递归导致的性能低下的问题。
3、附图说明:
图1是家谱成员在家谱树网中的位置依赖成员自身多个属性,如成员的性别、父亲、自身在兄弟姐妹中的排行等,由于添加家谱成员的次序是无规律的,完全按照坐标法标定成员的位置,将会导致大量的关联节点坐标的改变的数据结构图。
图2是家谱成员节点在家谱树中的位置x坐标通过世辈函数关系定位其在家谱中的世辈,节点y坐标通过指针定位其在所在世辈的节点位次,从而能快速确定该节点在整个家谱中的准确位置的示意图。
图3是采用家谱树节点类坐标数据结构设计移动节点时数据示意图。
四、具体实施方式
1)、家谱数据结构是一张具有方向的树,同时又是一张每个节点都有称谓关系的网。家谱对宗族人员关系进行描述,同一个成员相对家族中其他不同成员拥有不同关系,如父亲、丈夫、儿子、侄子、堂兄等最多可超过120种不同的关系称谓。一个成员相对另外一个成员的关系,依据两个成员节点在整个家谱树网中不同位置决定,家谱树同时是一张家谱网,任何两个成员节点都有明确的在家族伦理上的关系称谓。
2)、在网格结构中,最有效的定位方式是坐标法,每个节点定义坐标[x,y]。家谱成员在家谱树网中的位置依赖成员自身多个属性,如成员的性别、父亲、自身在兄弟姐妹中的排行等,由于添加家谱成员的次序是无规律的,完全按照坐标法标定成员的位置,将会导致大量的关联节点坐标的改变,数据维护成本高,如图1所示。当需要添加二哥时,将会导致从四哥直到堂弟所有节点坐标的移动。在一个大的家谱中,当添加成员时,这种传统坐标法可能会导致成千上万个节点的坐标的改变。
3)、为了避免上述情况,设计出家谱树节点类坐标数据结构。成员节点node[x,y],其中x坐标由家谱的世辈ID与家谱世辈实际代数构成的函数f(ID,factOrder)确定,y坐标为相同世辈相邻成员的ID,同时y坐标是指向上一个成员的指针。
x坐标值的计算方法。每个家谱的世辈次序是严格有序地依据自然数从第一代依次递进到第N代。家谱在录入过程中世辈次序向上或向下延拓。每个世辈顺次所对应的自然数会相应做有序变动,建立家谱成员节点x坐标值与世辈函数关系x=f(ID,factOrder),函数f(ID,factOrder)作用是处理世辈ID与世辈的自然数顺次值的对应关系,通过该函数在家谱世辈延拓后,家谱中已有节点的x坐标值在不变的情况下,仍能映射成正确的世辈顺次。
y坐标值的计算方法。由于同世辈节点在家谱中的位次是严格按照宗族伦理秩序规则确定的,为了避免在插入节点后导致后续位次节点的y坐标值需要大规模变动,引入了同世辈节点指针作为y坐标的定义,即相邻两个节点左节点的ID为右节点的y坐标值,依次类推。指针值依据中国传统家族伦理秩序的尊卑等级计算,由于加入指针的设计,添加、删除、移动节点时,只需要改变相对位置所在的节点的指针值。
4)、家谱树节点类坐标结构使用方法
4.1)、节点在家谱树中的位置定位
如图2所示。家谱树节点类坐标结构中节点x坐标通过世辈函数关系能快速定位其在家谱中的世辈代数,节点y坐标通过指针快速定位其在家谱同一世辈中依据家族伦理关系约定的位置,从而能快速确定该节点在整个家谱树网中的准确位置,进而能快速获得两个节点之间的称谓关系。
4.2)、添加节点
a)在某世辈最左边添加节点,将左边原第一个节点y坐标值设置为新添加节点ID;
b)最右边添加节点,新添加节点的y坐标值设置为原最后边节点ID;
c)在中间添加节点,将新节点的y坐标值设置为插入点左边最后一个节点ID,同时将插入点右边第一个节点的y坐标值设置为新节点ID。
综上所述,家谱树节点类坐标数据结构设计方式,可以将在普通的坐标定位方式下添加成员需要修改大量节点的y坐标值优化为只需要修改最多二个节点的y坐标值,从而极大地提高了性能。
4.3)、移动节点(包括子树),数据示意图如图3
节点A、B、C、D、E是同辈节点,分别记做Tree(A)、Tree(B)、Tree(C)、Tree(D)、Tree(E),其自身都为一棵子树。如修改B节点的在兄弟内的排行,则需要将Tree(B)整体移动至Tree(D)与Tree(E)中间。依据家谱树节点类坐标数据结构的定义,被移动节点x坐标值不变,Tree(B)原抽离位置和新插入位置相应y坐标值重新设置,处理流程如下:
步骤1:获取Tree(B)根节点,即nodeB在整个家谱树中的坐标,以及获取Tree(B)的层级数量;
步骤2:Tree(B)移走后,原来以Tree(B)每层最右边节点Tree(B).rightBoundary[x,y]的ID作为y坐标值的节点的y坐标值修改为最左边节点Tree(B).leftBoundary[x,y]的y坐标值,以Tree(B)的层级数作为循环次数,逐层修改。例如:
以Tree(B).node1的ID作为y坐标值的节点是Tree(C).node1,将Tree(C).node1的y坐标值修改为Tree(B).node1的y坐标值,即Tree(A).node1的ID;
以Tree(B).node6的ID作为y坐标值的节点是Tree(D).node4,将Tree(D).node4的y坐标值修改为Tree(B).node6的y坐标值,即Tree(A).node4的ID。
步骤3:Tree(B)插入到Tree(D)和Tree(E)中间时,先将Tree(D)作为参照树,以Tree(D)最右边节点Tree(D).rightBoundary[x,y]的ID作为y坐标值的节点的y坐标值修改为Tree(B)对应层级最右边节点Tree(B).rightBoundary[x,y]的ID值,同时将Tree(B)最左边节点Tree(B).leftBoundary[x,y]的y坐标值修改为Tree(D).rightBoundary[x,y]的ID,以Tree(B)的层级数作为循环次数,逐层修改。若Tree(D)层级少于Tree(B),则超出的层级节点以Tree(C)作为参照树,依据同样数据逻辑循环处理。例如:
以Tree(D).node1的ID作为y坐标值的节点是Tree(E).node1,将Tree(E).node1的y坐标值修改为Tree(B).node1的ID值,同时将Tree(B).node1的y坐标值修改Tree(D).node1的ID;
Tree(B)超过Tree(D)的层级部分,再以Tree(C)作为参照,Tree(E).node5的y坐标值修改为Tree(B).node8的ID,同时将Tree(B).node7的y坐标值修改为Tree(C).node4的ID。
综上所述,移动子树时,只需要对所影响的子树的左右边界节点以及新位置插入点左右边界节点进行坐标的y值,即指针值重新计算即可,极大简化大规模移动子树节点时对整体家谱成员的数据坐标的影响。
4.4)、删除节点
删除节点通常意味着删除一棵子树,流程逻辑与移动节点子树时,从原位置抽离的流程逻辑完全相同。
Claims (2)
1.本发明是一种家谱树节点类坐标数据结构。成员节点node[x,y]的x坐标由家谱的世辈ID与家谱世辈实际代数构成的函数f(ID,factOrder)确定,y坐标为相同世辈相邻成员的ID,同时y坐标是指向上一个成员的指针。
2.根据权利要求1所述的家谱树节点类坐标数据结构,其特征是采用二维坐标结合指针,可以高效率地对家谱树节点定位、新节点的插入、节点删除、子树迁移、子树删除以及确定节点与节点之间亲疏关系等。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910566217.1A CN112148727A (zh) | 2019-06-27 | 2019-06-27 | 家谱树节点类坐标数据结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910566217.1A CN112148727A (zh) | 2019-06-27 | 2019-06-27 | 家谱树节点类坐标数据结构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112148727A true CN112148727A (zh) | 2020-12-29 |
Family
ID=73868564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910566217.1A Pending CN112148727A (zh) | 2019-06-27 | 2019-06-27 | 家谱树节点类坐标数据结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148727A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970496A (en) * | 1996-09-12 | 1999-10-19 | Microsoft Corporation | Method and system for storing information in a computer system memory using hierarchical data node relationships |
US6381605B1 (en) * | 1999-05-29 | 2002-04-30 | Oracle Corporation | Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets |
US20060173927A1 (en) * | 2003-09-30 | 2006-08-03 | International Business Machines Corporation | Extensible Decimal Identification System for Ordered Nodes |
US20160232189A1 (en) * | 2015-02-05 | 2016-08-11 | Sap Se | Derivation of hierarchy indexes |
-
2019
- 2019-06-27 CN CN201910566217.1A patent/CN112148727A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970496A (en) * | 1996-09-12 | 1999-10-19 | Microsoft Corporation | Method and system for storing information in a computer system memory using hierarchical data node relationships |
US6381605B1 (en) * | 1999-05-29 | 2002-04-30 | Oracle Corporation | Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets |
US20060173927A1 (en) * | 2003-09-30 | 2006-08-03 | International Business Machines Corporation | Extensible Decimal Identification System for Ordered Nodes |
US20160232189A1 (en) * | 2015-02-05 | 2016-08-11 | Sap Se | Derivation of hierarchy indexes |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hinrichs et al. | The grid file: a data structure designed to support proximity queries on spatial objects | |
US10042914B2 (en) | Database index for constructing large scale data level of details | |
US20080228783A1 (en) | Data Partitioning Systems | |
JPH07168878A (ja) | イメージをデータ・モデルに再構成する方法 | |
CN112181991B (zh) | 基于快速构建kd树的地球模拟系统网格重映射方法 | |
Arge et al. | Cache-oblivious data structures | |
CN110659284A (zh) | 基于树图结构的区块定序方法及系统、数据处理终端 | |
Sibeyn et al. | Heuristics for semi-external depth first search on directed graphs | |
CN108509532B (zh) | 一种应用于地图的聚点方法和装置 | |
CN114357097A (zh) | 地图注记构建方法、装置、计算机设备及存储介质 | |
CN103699653A (zh) | 数据聚类方法和装置 | |
CN112148727A (zh) | 家谱树节点类坐标数据结构 | |
Fang et al. | Mining bucket order-preserving submatrices in gene expression data | |
JP5712851B2 (ja) | データ分割装置、データ分割方法およびデータ分割プログラム | |
Ho et al. | Fast legalization for standard cell placement with simultaneous wirelength and displacement minimization | |
CN106980673A (zh) | 内存数据库表索引更新方法及系统 | |
CN108509618B (zh) | 一种基于空间填充曲线的大数据多维数据索引方法 | |
US20130138682A1 (en) | Hierarchical grid for spatial querying | |
US7302377B1 (en) | Accelerated event queue for logic simulation | |
CN116090395A (zh) | 数据处理方法、数据结构的生成方法、查询方法 | |
CN113627120A (zh) | 超导集成电路布局优化方法和装置、存储介质和终端 | |
CN111984691B (zh) | 一种分布式存储系统中对象元数据检索列举方法及装置 | |
CN108846009A (zh) | 一种ceph中副本数据存储方法及装置 | |
CN110473459A (zh) | 基于网络Voronoi图的点群选取 | |
CN114049387A (zh) | 一种基于3d点云的树木骨架提取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 201805 room 1404, 28 Moyu Road, Anting Town, Jiading District, Shanghai Applicant after: Shanghai Huaien Network Technology Co.,Ltd. Address before: 201805 room 610, 1033 Moyu South Road, Anting Town, Jiading District, Shanghai Applicant before: Shanghai Huaien Network Technology Co.,Ltd. |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20201229 |