一种树型数据上判定节点关系的方法

文档序号:6620745阅读:1311来源:国知局
一种树型数据上判定节点关系的方法
【专利摘要】一种树型数据上判定节点关系的方法,包括:根据设计规则创建数据树的根节点,并进行添加和删除节点等操作;确定数据树上的第一节点和第二节点;根据两个节点的属性数据和特征数据判定第一节点和第二节点之间的关系。设计规则为:数据树上的每个节点具有属性数据和特征数据;除根节点外,每个节点的属性数据对应一个不同的素数,特征数据为其所有前驱节点属性数据的乘积。本发明基于满足设计规则的树型数据,在判定树型数据中两个节点之间的关系时,不需要对树中的节点进行遍历,直接通过属性数据和特征数据计算即可判定节点之间的关系,提高了判定过程的效率,该判定过程的时间复杂度为常数时间。
【专利说明】
一种树型数据上判定节点关系的方法

【技术领域】
[0001]本发明涉及计算机软件中数据组织和管理相关领域,尤其是涉及一种树型数据上判定节点关系的方法。

【背景技术】
[0002]在信息系统中,为了对数据进行统计、管理、分析等,,常常需要对数据进行组织和管理,以便于获取数据并进行分析。树型数据是一种常用的数据组织和管理的数据结构,可以简称为数据树。例如,为了管理书籍的类别,可以建立一个数据树,数据树上的每个节点对应一个类别,,如图1所示,根节点对应“书籍分类”,其子节点可以有“娱乐”、“动物”、“社会科学”等,而“动物”这个节点下又可以有“脊椎动物”、“无脊椎动物”等子节点,“脊椎动物”还可以有“哺乳动物”、“两栖动物”、“鸟类”等子节点。当分类越来越多时,所构成树的宽度和深度就会越来越大。对属于哺乳动物的牛来说,当需要查找其是否还属于“动物”或“社会科学”时,就需要判断牛直属的类别“哺乳动物”和要判断的类别一“动物”或“社会科学”一是否存在某种关系。这里,牛属于“哺乳动物”这个类别,“动物”这个节点是“哺乳动物”的前驱,因为“动物”有子节点“脊椎动物”,而“脊椎动物”又有子节点“哺乳动物”,所以牛也属于“动物”这个类别。而“社会科学”不是“哺乳动物”的前驱,所以牛不属于“社会科学”这个类别。
[0003]目前计算机在判定数据树上两个节点之间的关系时,采用对数据树进行遍历的方式实现,这种方式效率较低,判定的时间依赖于数据树中该节点的深度,计算的时间复杂度为对数时间或者更多。本发明可以简化判定的过程,并且提高效率。


【发明内容】

[0004]本发明的目的是提供一种树型数据上判定节点关系的方法,以更好的解决现有技术中判断数据树上节点关系的问题。
[0005]在一些说明性实施例中,所述树型数据上判定节点关系的方法,包括:确定数据树上的第一节点和第二节点,根据两个节点的属性数据和特征数据判定所述第一节点和第二节点之间的关系。其中,所述数据树上的每个节点具有相应的属性数据和特征数据,所述数据树上的非根节点的特征数据与其所有前驱节点的属性数据相关。
[0006]优选地,在确定数据树上的第一节点和第二节点之前,,还包括:建立所述数据树,其步骤如下:创建树型数据的根节点,设置其属性数据和特征数据;按照设计规则设置每个节点的属性数据和特征数据。所述设计规则为:每个节点的属性数据为各不相同的素数,除根节点外,任意一个节点的特征数据为其所有前驱节点属性数据的乘积。
[0007]与现有技术相比,本发明的说明性实施例包括以下优点:
[0008](I)判断数据树中两个节点之间的关系,不需要对数据树中的节点进行遍历,使用节点的属性数据和特征数据进行简单计算即可。
[0009](2)判定过程的时间复杂度为常数时间,不依赖于数据树中节点的深度,比现有方法简洁、快速、高效。

【专利附图】

【附图说明】
[0010]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0011]图1是按照本发明的说明性实施例的示例数据树的示意图;
图2是按照本发明的说明性实施例的流程图;
[0012]图3是按照本发明的说明性实施例的判定过程;
[0013]图4是按照本发明的说明性实施例的数据树的示意图;;
[0014]图5是按照本发明的说明性实施例的数据树根节点;
[0015]图6是删除“软件”节点前的数据树的示意图;
[0016]图7是删除“软件”节点后的数据树的示意图;
[0017]图8是移动“软件”子树前的数据树的示意图;
[0018]图9是移动“软件”子树后的数据树的示意图;
[0019]图10是按照本发明的说明性实施例的数据树的示意图。

【具体实施方式】
[0020]在以下详细描述中,提出大量特定细节,以便于提供对本发明的透彻理解。但是,本领域的技术人员会理解,即使没有这些特定细节也可实施本发明。在其它情况下,没有详细描述众所周知的方法、过程、组件和电路,以免影响对本发明的理解
[0021]为了更好的理解本发明中的说明性实施例,下面对本发明说明性实施例中的一些术语进行简单说明。
[0022]素数,又称质数,指在大于I的自然数中,除了 I和自身外,无法被其他自然数整除的数,即素数只有I和自身两个因子。
[0023]本发明中的说明性实施例阐述的主要思想是:利用素数的乘积进行因子分解时的确定性和唯一性,存储树中节点之间的结构关系。给定树中任意两个节点,可以在常数时间内判定这两个节点之间是否存在前驱或后继关系、同一关系、兄弟关系或其他关系。
[0024]为了更好的理解本发明中的说明性实施例,下面对本发明说明性实施例中的一些节点关系进行说明。
[0025]I)前驱关系:节点a的父节点是节点a的前驱;节点a的前驱的父节点也是a的前驱。
[0026]2)后继关系:节点a的子节点是节点a的后继;节点a的后继的子节点也是节点a的后继。
[0027]3)同一关系:节点a和节点b是同一个节点。
[0028]4)兄弟关系:节点a的父节点和节点b的父节点是同一个节点。
[0029]5)其他关系:除以上1)、2)、3)、4)给出的关系之外的关系。
[0030]现在参照图2,图2给出了根据一些说明性实施例中的判定节点关系的流程图。
[0031]如图2所示,在一些说明性实施例中,公开了一种树型数据上判定节点关系的方法,包括:
[0032]S11、创建树型数据的根节点,即创建数据树的根节点,设置根节点的属性数据和特征数据;
[0033]S12、根据设计规则进行添加节点、删除节点等操作,,包括设置相关节点的属性数据和特征数据;
[0034]S13、确定数据树上的第一节点和第二节点;
[0035]S14、根据两个节点的属性数据和特征数据判定所述第一节点和第二节点之间的关系。
[0036]其中,所述设计规则为:数据树上的每个节点具有属性数据和特征数据;除根节点外,每个节点的属性数据对应一个不同的素数,特征数据为其所有前驱节点属性数据的乘积。
[0037]判断数据树中两个节点之间的关系,不需要对数据树中的节点进行遍历,使用节点的属性数据和特征数据进行简单计算即可。判定过程的时间复杂度为常数时间,不依赖于数据树中节点的深度,比现有方法简洁、快速、高效。
[0038]在一些说明性实施例中,为每个节点设置各不相同的素数的过程,包括:从素数生成和管理模块中获取未曾使用过的素数,可以是新产生的素数或者在数据树中删除节点后回收的素数。其中,素数生成和管理模块用于保存和产生素数,并保证每次使用的素数在数据树中是唯一的。
[0039]在一些说明性实施例中,在所述数据树上添加节点时,,还包括:
[0040]在所述数据树上指定一个节点作为父节点;通过素数生成和管理模块为所述添加节点分配一个素数作为其属性数据,其特征数据设置为所有前驱节点属性数据的乘积。
[0041]在一些说明性实施例中,在删除所述数据树上的非根节点时,还包括:
[0042]将删除节点的所有子节点的父节点设置为所述删除节点的父节点,按照所述设计规则更新所述删除节点的所有后继节点的特征数据;素数生成和管理模块回收所述删除节点的属性数据。
[0043]在一些说明性实施例中,确定数据树上的第一节点和第二节点,根据两个节点的属性数据和特征数据判定所述第一节点和第二节点之间关系的过程,包括:
[0044]

【权利要求】
1.一种树型数据上判定节点关系的方法,其特征在于,包括: 确定数据树上的第一节点和第二节点,根据两个节点的属性数据和特征数据判定所述第一节点和第二节点之间的关系; 其中,所述数据树上的每个节点具有相应的属性数据和特征数据,所述数据树上的非根节点的特征数据与其所有前驱节点的属性数据相关。
2.根据权利要求1所述的方法,其特征在于,在确定数据树上的第一节点和第二节点之前,还包括:建立所述数据树,其步骤如下: 创建数据树的根节点,设置其属性数据和特征数据; 按照设计规则添加和删除节点,并设置相关节点的属性数据和特征数据; 所述设计规则为:每个节点的属性数据为各不相同的素数,除根节点外,任意一个节点的特征数据为其所有前驱节点属性数据的乘积。
3.根据权利要求2所述的方法,其特征在于,每个节点的属性数据设置为各不相同的素数,包括: 从素数生成和管理模块中获取未曾使用过的素数,所述素数为新产生的素数或者在数据树中删除节点后回收的素数。
4.根据权利要求2所述的方法,其特征在于,在所述数据树上添加节点时,还包括: 在所述数据树上指定一个节点作为父节点; 通过素数生成和管理模块为所述添加节点分配一个素数作为其属性数据,其特征数据设置为所有前驱节点属性数据的乘积。
5.根据权利要求2所述的方法,其特征在于,在删除所述数据树上的任意一个非根节点时,还包括: 将删除节点的所有子节点的父节点设置为所述删除节点的父节点,按照所述设计规则更新所述删除节点的所有后继节点的特征数据; 素数生成和管理模块回收所述删除节点的属性数据。
6.根据权利要求2所述的方法,其特征在于,确定数据树上的第一节点和第二节点,根据两个节点的属性数据和特征数据判定所述第一节点和第二节点之间关系的过程,包括:
<a/b,otherwise.其中,a为第一节点,b为第二节点,Ma和Mb分别为a和b的特征数据,Pa和Pb分别为a和b的属性数据,< pre表示前者是后者的前驱,=表示两者是同一节点,<>表示两者是兄弟节点,/表示两者是其它关系。
【文档编号】G06F17/30GK104199824SQ201410345867
【公开日】2014年12月10日 申请日期:2014年7月21日 优先权日:2014年7月21日
【发明者】杜南山, 江潮 申请人:武汉传神信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1