一种树型数据上判定节点关系的方法,包括:根据设计规则创建数据树的根节点,并进行添加和删除节点等操作;确定数据树上的第一节点和第二节点;根据两个节点的属性数据和特征数据判定第一节点和第二节点之间的关系。设计规则为:数据树上的每个节点具有属性数据和特征数据;除根节点外,每个节点的属性数据对应一个不同的素数,特征数据为其所有前驱节点属性数据的乘积。本发明专利技术基于满足设计规则的树型数据,在判定树型数据中两个节点之间的关系时,不需要对树中的节点进行遍历,直接通过属性数据和特征数据计算即可判定节点之间的关系,提高了判定过程的效率,该判定过程的时间复杂度为常数时间。
【技术实现步骤摘要】
【专利摘要】,包括:根据设计规则创建数据树的根节点,并进行添加和删除节点等操作;确定数据树上的第一节点和第二节点;根据两个节点的属性数据和特征数据判定第一节点和第二节点之间的关系。设计规则为:数据树上的每个节点具有属性数据和特征数据;除根节点外,每个节点的属性数据对应一个不同的素数,特征数据为其所有前驱节点属性数据的乘积。本专利技术基于满足设计规则的树型数据,在判定树型数据中两个节点之间的关系时,不需要对树中的节点进行遍历,直接通过属性数据和特征数据计算即可判定节点之间的关系,提高了判定过程的效率,该判定过程的时间复杂度为常数时间。【专利说明】
本专利技术涉及计算机软件中数据组织和管理相关领域,尤其是涉及。
技术介绍
在信息系统中,为了对数据进行统计、管理、分析等,,常常需要对数据进行组织和管理,以便于获取数据并进行分析。树型数据是一种常用的数据组织和管理的数据结构,可以简称为数据树。例如,为了管理书籍的类别,可以建立一个数据树,数据树上的每个节点对应一个类别,,如图1所示,根节点对应“书籍分类”,其子节点可以有“娱乐”、“动物”、“社会科学”等,而“动物”这个节点下又可以有“脊椎动物”、“无脊椎动物”等子节点,“脊椎动物”还可以有“哺乳动物”、“两栖动物”、“鸟类”等子节点。当分类越来越多时,所构成树的宽度和深度就会越来越大。对属于哺乳动物的牛来说,当需要查找其是否还属于“动物”或“社会科学”时,就需要判断牛直属的类别“哺乳动物”和要判断的类别一“动物”或“社会科学”一是否存在某种关系。这里,牛属于“哺乳动物”这个类别,“动物”这个节点是“哺乳动物”的前驱,因为“动物”有子节点“脊椎动物”,而“脊椎动物”又有子节点“哺乳动物”,所以牛也属于“动物”这个类别。而“社会科学”不是“哺乳动物”的前驱,所以牛不属于“社会科学”这个类别。 目前计算机在判定数据树上两个节点之间的关系时,采用对数据树进行遍历的方式实现,这种方式效率较低,判定的时间依赖于数据树中该节点的深度,计算的时间复杂度为对数时间或者更多。本专利技术可以简化判定的过程,并且提高效率。
技术实现思路
本专利技术的目的是提供,以更好的解决现有技术中判断数据树上节点关系的问题。 在一些说明性实施例中,所述树型数据上判定节点关系的方法,包括:确定数据树上的第一节点和第二节点,根据两个节点的属性数据和特征数据判定所述第一节点和第二节点之间的关系。其中,所述数据树上的每个节点具有相应的属性数据和特征数据,所述数据树上的非根节点的特征数据与其所有前驱节点的属性数据相关。 优选地,在确定数据树上的第一节点和第二节点之前,,还包括:建立所述数据树,其步骤如下:创建树型数据的根节点,设置其属性数据和特征数据;按照设计规则设置每个节点的属性数据和特征数据。所述设计规则为:每个节点的属性数据为各不相同的素数,除根节点外,任意一个节点的特征数据为其所有前驱节点属性数据的乘积。 与现有技术相比,本专利技术的说明性实施例包括以下优点: (I)判断数据树中两个节点之间的关系,不需要对数据树中的节点进行遍历,使用节点的属性数据和特征数据进行简单计算即可。 (2)判定过程的时间复杂度为常数时间,不依赖于数据树中节点的深度,比现有方法简洁、快速、高效。 【专利附图】【附图说明】 此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中: 图1是按照本专利技术的说明性实施例的示例数据树的示意图;图2是按照本专利技术的说明性实施例的流程图; 图3是按照本专利技术的说明性实施例的判定过程; 图4是按照本专利技术的说明性实施例的数据树的示意图;; 图5是按照本专利技术的说明性实施例的数据树根节点; 图6是删除“软件”节点前的数据树的示意图; 图7是删除“软件”节点后的数据树的示意图; 图8是移动“软件”子树前的数据树的示意图; 图9是移动“软件”子树后的数据树的示意图; 图10是按照本专利技术的说明性实施例的数据树的示意图。 【具体实施方式】 在以下详细描述中,提出大量特定细节,以便于提供对本专利技术的透彻理解。但是,本领域的技术人员会理解,即使没有这些特定细节也可实施本专利技术。在其它情况下,没有详细描述众所周知的方法、过程、组件和电路,以免影响对本专利技术的理解 为了更好的理解本专利技术中的说明性实施例,下面对本专利技术说明性实施例中的一些术语进行简单说明。 素数,又称质数,指在大于I的自然数中,除了 I和自身外,无法被其他自然数整除的数,即素数只有I和自身两个因子。 本专利技术中的说明性实施例阐述的主要思想是:利用素数的乘积进行因子分解时的确定性和唯一性,存储树中节点之间的结构关系。给定树中任意两个节点,可以在常数时间内判定这两个节点之间是否存在前驱或后继关系、同一关系、兄弟关系或其他关系。 为了更好的理解本专利技术中的说明性实施例,下面对本专利技术说明性实施例中的一些节点关系进行说明。 I)前驱关系:节点a的父节点是节点a的前驱;节点a的前驱的父节点也是a的前驱。 2)后继关系:节点a的子节点是节点a的后继;节点a的后继的子节点也是节点a的后继。 3)同一关系:节点a和节点b是同一个节点。 4)兄弟关系:节点a的父节点和节点b的父节点是同一个节点。 5)其他关系:除以上1)、2)、3)、4)给出的关系之外的关系。 现在参照图2,图2给出了根据一些说明性实施例中的判定节点关系的流程图。 如图2所示,在一些说明性实施例中,公开了,包括: S11、创建树型数据的根节点,即创建数据树的根节点,设置根节点的属性数据和特征数据; S12、根据设计规则进行添加节点、删除节点等操作,,包括设置相关节点的属性数据和特征数据; S13、确定数据树上的第一节点和第二节点; S14、根据两个节点的属性数据和特征数据判定所述第一节点和第二节点之间的关系。 其中,所述设计规则为:数据树上的每个节点具有属性数据和特征数据;除根节点外,每个节点的属性数据对应一个不同的素数,特征数据为其所有前驱节点属性数据的乘积。 判断数据树中两个节点之间的关系,不需要对数据树中的节点进行遍历,使用节点的属性数据和特征数据进行简单计算即可。判定过程的时间复杂度为常数时间,不依赖于数据树中节点的深度,比现有方法简洁、快速、高效。 在一些说明性实施例中,为每个节点设置各不相同的素数的过程,包括:从素数生成和管理模块中获取未曾使用过的素数,可以是新产生的素数或者在数据树中删除节点后回收的素数。其中,素数生成和管理模块用于保存和产生素数,并保证每次使用的素数在数据树中是唯一的。 在一些说明性实施例中,在所述数据树上添加节点时,,还包括: 在所述数据树上指定一个节点作为父节点;通过素数生成和管理模块为所述添加节点分配一个素数作为其属性数据,其特征数据设置为所有前驱节点属性数据的乘积。 在一些说明性实施例中,在删除所述数据树上的非根节点时,还包括: 将删除节点的所有子节点的父节点设置为所述删除节点的父节点,按照所述设计规则更新所述删除节点的所有后继节点的特征数据;素数生成和管理模块回收所述删除节点的属本文档来自技高网...
【技术保护点】
一种树型数据上判定节点关系的方法,其特征在于,包括:确定数据树上的第一节点和第二节点,根据两个节点的属性数据和特征数据判定所述第一节点和第二节点之间的关系;其中,所述数据树上的每个节点具有相应的属性数据和特征数据,所述数据树上的非根节点的特征数据与其所有前驱节点的属性数据相关。
【技术特征摘要】
【专利技术属性】
技术研发人员:杜南山,江潮,
申请(专利权)人:武汉传神信息技术有限公司,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。