一种判定层次结构中节点关系的方法
【专利摘要】本文提供一种判定层次结构中节点关系的方法和装置,其中所述方法,包括:根据待判定的层次结构中两个节点的标识数据和特征数据,判定所述两个节点的关系;其中,所述层次结构的每个节点具有相应的标识数据和特征数据,所述层次结构上的非顶层节点的特征数据与其所有前驱节点的标识数据相关;采用本文所述的方法和装置,数据表示和计算过程简洁、快速、高效;判定两节点是否存在前驱或后继关系的计算复杂度为常数时间。
【专利说明】
一种判定层次结构中节点关系的方法
技术领域
[0001] 本发明属于计算机软件领域,尤其涉及一种判定层次结构中节点关系的方法。
【背景技术】
[0002] 在信息系统中,为了对数据进行统计、管理、分析等,常常需要对数据进行组织和 管理,以便于获取数据并进行分析。现实生活中,很多信息都是基于层次结构进行管理的。 例如我们常说的多部门管理,多头领导,交叉学科,多重身份,等等。
[0003] 层次结构相对于树和图来说,不是一种常见的数据结构,但是其介于两者之间,对 数据的组织和表达能力也介于两者之间。层次结构的一种等价形式是代数系统中的偏序关 系。目前判定层次结构中两个节点之间是否存在层次间的关联关系,计算复杂度一般大于 常数时间,并且比较复杂。
【发明内容】
[0004] 有鉴于此,为了解决现有技术中存在层次结构中节点关系判断困难的问题,本发 明的目的是提出一种判定层次结构中节点关系的方法。为了对披露的实施例的一些方面有 一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/ 重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念, 以此作为后面的详细说明的序言。
[0005] 在一些可选的实施例中,所述判定层次结构中节点关系的方法,包括:
[0006] 根据待判定的层次结构中两个节点的标识数据和特征数据,判定所述两个节点的 关系;
[0007] 其中,所述层次结构的每个节点具有相应的标识数据和特征数据,所述层次结构 上的非顶层节点的特征数据与其所有前驱节点的标识数据相关。
[0008] 本发明另一个目的是提供一种判定层次结构中节点关系的装置;
[0009] 在一些可选的实施例中,所述装置,包括:
[0010] 判定模块,用于根据待判定的层次结构中两个节点的标识数据和特征数据,判定 所述两个节点的关系;
[0011]其中,所述层次结构的每个节点具有相应的标识数据和特征数据,所述层次结构 上的非顶层节点的特征数据与其所有前驱节点的标识数据相关。
[0012]采用上述实施例,可达到以下效果:
[0013]数据表示和计算过程简洁、快速、高效;
[0014] 判定两节点是否存在前驱或后继关系的计算复杂度为常数时间。
[0015] 为了上述以及相关的目的,一个或多个实施例包括后面将详细说明并在权利要求 中特别指出的特征。下面的说明以及附图详细说明某些示例性方面,并且其指示的仅仅是 各个实施例的原则可以利用的各种方式中的一些方式。其它的益处和新颖性特征将随着下 面的详细说明结合附图考虑而变得明显,所公开的实施例是要包括所有这些方面以及它们 的等同。
【附图说明】
[0016] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0017] 图1示出了本发明实施例的一种判定层次结构中节点关系的方法流程示意图;
[0018] 图2示出了本发明实施例的层次结构中各节点赋值后的示意图;
[0019] 图3示出了本发明实施例的层次结构中节点关系的判定流程示意图;
[0020] 图4示出了本发明人实施例的一种判定层次结构中节点关系的装置的功能结构框图。
【具体实施方式】
[0021] 以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够 实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例 仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以 变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发 明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同 物。在本文中,本发明的这些实施方案可以被单独地或总地用术语"发明"来表示,这仅仅是 为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任 何单个发明或发明构思。
[0022] 为了更好的理解本发明中的说明性实施例,下面对本发明说明性实施例中的一些 术语进行简单说明。
[0023] 素数,又称质数,指在大于1的自然数中,除了 1和自身外,无法被其他自然数整除 的数,即素数只有1和自身两个因子。
[0024] 本发明中的说明性实施例阐述的主要思想是:利用素数的乘积进行因子分解时的 确定性和唯一1性,存储层次结构中节点之间的关系。给定任意两个节点,可以在常数时间内 判定这两个节点之间是否存在前驱或后继关系、同一关系或其他关系。
[0025] 为了更好的理解本发明中的说明性实施例,参照图1对本发明说明性实施例中的 一些节点关系进行说明;其中,图2与偏序集<L,0等价;偏序集<L,0为L={a,b,c,d,e, f}a<c b<c c<d cKe cKf.
[0026] 1)前驱关系:节点n的前驱,记为Pren,可以递归定义为:
[0027] (1)节点η的上层节点是η的前驱;
[0028] (2)节点η的前驱的上层节点也是节点η的前驱。
[0029]根据以上定义有:对于图2和偏序集<L,0,节点c的前驱为{d,e,f}。
[0030] 2)后继关系:节点η的后继,记为Postn,可以递归定义为:
[0031] (1)节点η的下层节点是η的后继;
[0032] (2)节点η的后继的下层节点也是节点η的后继。
[0033]根据以上定义有:对于图2和偏序集<L,0,节点d的后继为{a,b,c}。
[0034] 3)同一关系:同一个节点。
[0035] 4)其他关系:除以上1)、2)、3)给出的关系之外的关系。
[0036] 本发明提供一种判定层次结构中节点关系的方法,图1为该方法的流程示意图,所 述方法,包括:
[0037] 根据待判定的层次结构中两个节点的标识数据和特征数据,判定所述两个节点的 关系;
[0038]其中,所述层次结构的每个节点具有相应的标识数据和特征数据,所述层次结构 上的非顶层节点的特征数据与其所有前驱节点的标识数据相关;
[0039] 通过本实施例所述的判定方法,可以使得对给定层次结构中任意两个节点,判定 两节点是否存在前驱或后继关系的计算复杂度为常数时间,判定过程简单高效;
[0040] 可选的,在判定所述两个节点的关系前,还包括:
[0041 ]判断所述两个节点所属层次结构是否赋值;若是,则进入所述判定所述两个节点 的关系的操作;反之,则:
[0042] 从所述层次结构的顶层节点起依次为其及下层各节点赋值,即为每个节点添加相 应的标识数据和特征数据;
[0043] 可选的,在所述赋值的过程中,遵循以下设计规则:
[0044] 所述层次结构中的每个节点的标识数据为各不相同的素数;
[0045] 除顶层节点外,任意一个节点的特征数据为其所有前驱节点标识数据的乘积;
[0046] 在该实施例中,利用素数的乘积进行因子分解时的确定性和唯一性,存储层次结 构中节点之间的结构关系;
[0047] 下面结合图2,以具体的实施例对上述方法进行说明,其中,图2示出了本发明实施 例的层次结构中各节点赋值后的示意图;图3示出了本发明实施例的层次结构中节点关系 的判定流程示意图;
[0048]其中,对图2中各节点赋值的过程如下:
[0049] 首先,为顶层节点(e、f)赋值,标识数据取一个未使用的素数(对应节点的数字依 次为:2、3),特征数据取1;
[0050] 其次,为第二层及以下节点((1、(3、&、13)赋值,标识数据取一个未使用的素数(对应 节点的数字依次为:5、7、11、13),特征数据为节点所有前驱的标识数据之积;
[0051] 可选的,所述判定所述两个节点的关系的操作,该判定的操作具体可以如图3所示 流程,包括:
[0053]其中,a为第一节点,b为第二节点,MdPMb分别为a和b的特征数据,UPIb分别为a 和b的标识数据,<pre3表示前者是后者的前驱,=表示两者是同一节点,/表示两者是其它关 系;(需要注意的是,本实施例在节点a、b指代层次结构中任意两个节点,而并非特指图2中 节点a、b)
[0054] 以下是对上述公式的简单说明:
[0055] 1.如果a的特征数据大于b的特征数据,并且a的特征数据对b的标识数据取模结果 为〇,则a是b的后继,即b是a的前驱;
[0056] 2.如果a的特征数据小于b的特征数据,并且b的特征数据对a的标识数据取模结果 为〇,则a是b的前驱,即b是a的后继;
[0057] 3.如果a的标识数据和b的标识数据相同,则a和b是同一节点;
[0058] 4. a和b属于其他关系;
[0059] 可选的,在所述赋值的操作后,还包括:
[0060] 若在所述层次结构的节点发生变更,则从发生变更的节点起依次为其及下层各节 点重新赋值;
[0061] 其中,所述变更的情况包括:在所述层次结构的任意位置添加或删除至少一个节 占 .
[0062] 如图2的层次结构中,例如:若在节点c后新增至少一个节点,则对新增的至少一个 节点继续按照上述赋值原则进行赋值;若在节点d后新增至少一个节点,并删除原节点d后 的节点c、a、b,则对新增的至少一个节点赋值;若修改原层次结构中的节点关系,则对修改 的节点及其后层节点进行赋值;在赋值的过程中,需要遵循标识数据为未使用的素数,并且 特征数据为所有前驱节点的标识数据之积;对于已经删除的节点曾经使用的素数,若当前 层次结构中的节点未使用该素数,则对待赋值的节点的标识数据进行赋值时,依然可以使 用该素数。
[0063]图4示出了本发明人实施例的一种判定层次结构中节点关系的装置的功能结构框 图;
[0064] 在一些可选的实施例中,所述装置400,包括:
[0065] 判定模块401,用于根据待判定的层次结构中两个节点的标识数据和特征数据,判 定所述两个节点的关系;
[0066] 其中,所述层次结构的每个节点具有相应的标识数据和特征数据,所述层次结构 上的非顶层节点的特征数据与其所有前驱节点的标识数据相关;
[0067] 在一些可选的实施例中,所述装置400,还包括:
[0068]判断模块402,用于所述判定模块401在判定所述两个节点的关系前,判断所述两 个节点所属层次结构是否赋值;若是,则触发所述判定模块401进入所述判定所述两个节点 的关系的操作;反之,则:
[0069] 赋值模块403,用于从所述层次结构的顶层节点起依次为其及下层各节点赋值,BP 为每个节点添加相应的标识数据和特征数据;
[0070] 在一些可选的实施例中,在所述赋值模块403赋值的过程中,遵循以下设计规则: [0071]所述层次结构中的每个节点的标识数据为各不相同的素数;
[0072] 除顶层节点外,任意一个节点的特征数据为其所有前驱节点标识数据的乘积;
[0073] 在一些可选的实施例中,所述判定模块401判定所述两个节点的关系的操作,包 括:
[0075]其中,a为第一节点,b为第二节点,MjPMb分别为a和b的特征数据,UPIb分别为a 和b的标识数据,<pre3表示前者是后者的前驱,=表示两者是同一节点,/表示两者是其它关 系;
[0076] 在一些可选的实施例中,所述装置400,还包括:
[0077]变更模块404,用于所述赋值模块403完成赋值的操作后,若在所述层次结构的节 点发生变更,则从发生变更的节点起依次为其及下层各节点重新赋值;
[0078] 其中,所述变更的情况包括:在所述层次结构的任意位置添加或删除至少一个节 点。
[0079] 综上所述,采用本发明所述的方法和装置,可使得:
[0080] 数据表示和计算过程简洁、快速、高效;
[0081] 判定两节点是否存在前驱或后继关系的计算复杂度为常数时间。
[0082]本领域技术人员还应当理解,以上所述仅为本发明的优选实施例而已,并不用于 限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精 神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种判定层次结构中节点关系的方法,其特征在于,包括: 根据待判定的层次结构中两个节点的标识数据和特征数据,判定所述两个节点的关 系; 其中,所述层次结构的每个节点具有相应的标识数据和特征数据,所述层次结构上的 非顶层节点的特征数据与其所有前驱节点的标识数据相关。2. 如权利要求1所述的方法,其特征在于,在判定所述两个节点的关系前,还包括: 判断所述两个节点所属层次结构是否赋值;若是,则进入所述判断所述两个节点的关 系的操作;反之,则: 从所述层次结构的顶层节点起依次为其及下层各节点赋值,即为每个节点添加相应的 标识数据和特征数据。3. 如权利要求2所述的方法,其特征在于,在所述赋值的过程中,遵循W下设计规则: 所述层次结构中的每个节点的标识数据为各不相同的素数; 除顶层节点外,任意一个节点的特征数据为其所有前驱节点标识数据的乘积。4. 如权利要求3所述的方法,其特征在于,所述判定所述两个节点的关系的操作,包括:其中,a为第一节点,b为第二节点,Ma和Mb分别为a和b的特征数据,la和Ib分别为a和b的 标识数据,<pre表示前者是后者的前驱,=表示两者是同一节点,/表示两者是其它关系。5. 如权利要求4所述的方法,其特征在于,在所述赋值的操作后,还包括: 若在所述层次结构的节点发生变更,则从发生变更的节点起依次为其及下层各节点重 新赋值; 其中,所述变更的情况包括:在所述层次结构的任意位置添加或删除至少一个节点。6. -种判定层次结构中节点关系的装置,其特征在于,包括: 判定模块,用于根据待判定的层次结构中两个节点的标识数据和特征数据,判定所述 两个节点的关系; 其中,所述层次结构的每个节点具有相应的标识数据和特征数据,所述层次结构上的 非顶层节点的特征数据与其所有前驱节点的标识数据相关。7. 如权利要求6所述的装置,其特征在于,还包括: 判断模块,用于所述判定模块在判定所述两个节点的关系前,判断所述两个节点所属 层次结构是否赋值;若是,则触发所述判定模块进入所述判定所述两个节点的关系的操作; 反之,则: 赋值模块,用于从所述层次结构的顶层节点起依次为其及下层各节点赋值,即为每个 节点添加相应的标识数据和特征数据。8. 如权利要求7所述的装置,其特征在于,在所述赋值模块赋值的过程中,遵循W下设 计规则: 所述层次结构中的每个节点的标识数据为各不相同的素数; 除顶层节点外,任意一个节点的特征数据为其所有前驱节点标识数据的乘积。9. 如权利要求8所述的装置,其特征在于,所述判定模块判定所述两个节点的关系的操 作,包括:其中,a为第一节点,b为第二节点,Ma和Mb分别为a和b的特征数据,la和Ib分别为a和b的 标识数据,<pre表示前者是后者的前驱,=表示两者是同一节点,/表示两者是其它关系。10. 如权利要求9所述的装置,其特征在于,还包括: 变更模块,用于所述赋值模块完成赋值的操作后,若在所述层次结构的节点发生变更, 则从发生变更的节点起依次为其及下层各节点重新赋值; 其中,所述变更的情况包括:在所述层次结构的任意位置添加或删除至少一个节点。
【文档编号】G06F17/30GK106095958SQ201610428054
【公开日】2016年11月9日
【申请日】2016年6月15日
【发明人】杜南山
【申请人】武汉传神信息技术有限公司