一种根据节点集合构造节点关系树的方法、装置及系统的制作方法

文档序号:6470339阅读:384来源:国知局
专利名称:一种根据节点集合构造节点关系树的方法、装置及系统的制作方法
技术领域
本发明属于数据处理领域,尤其涉及一种根据节点集合构造节点关系树的 方法、装置、系统及设备。
背景技术
行政组织关系,可以用树来表示,全部的组织构成一颗组织树,组织树上 的节点代表整个组织下的一个组织,组织树的根代表整个组织最高的行政组织。 但是有些时候只需要考虑整个组织中部分组织的结构、层级关系,例如只关心 某集团下几个不同部门和组的结构关系,现有做法需要先分别从组织树的根开 始向下遍历各节点,直至找到代表相应各组织的节点,才能得到所需要考虑的 这部分组织的结构、层级关系。这样,每次用的时候都要遍历一次,速度慢、 效率低。当组织有几千个,而关心的只是最下面的两个叶子节点时,采用现有 方法每次都遍历一次树的代价就非常大。
综上所述,现有技术没有提供根据节点集合构造节点关系树的方法,而是 在每次需要节点集合中节点的关系时都要遍历一次树,速度慢、效率低。

发明内容
本发明实施例的目的在于提供一种根据节点集合构造节点关系树的方法, 旨在解决现有技术没有提供根据节点集合构造节点关系树的方法,而是在每次 需要节点集合中节点的关系时都要遍历一次树,速度慢、效率低的问题。
本发明实施例是这样实现的, 一种根据节点集合构造节点关系树的方法,
所述方法包括下述步骤
在存储的节点关系中查找离节点集合中各节点最近的共有上级节点;以查找到的共有上级节点为根节点,根据存储的节点关系,构造以节点集 合中节点为叶子节点的树。
本发明实施例的另 一 目的在于提供一种根据节点集合构造节点关系树的装
置,所述装置包括
节点查找单元,用于在存储的节点关系中查找离节点集合中各节点最近的 共有上级节点;以及
树构造单元,用于以查找到的共有上级节点为根节点,根据存储的节点关 系,构造以节点集合中节点为叶子节点的树。
本发明实施例的另一目的在于提供包含上述根据节点集合构造节点关系树 的装置的数据处理系统。
本发明实施例的另 一 目的在于提供包含上述数据处理系统的电子设备。
在本发明实施例中,通过以离节点集合中各节点最近的共有上级节点为根 节点,根据存储的节点关系,构造以节点集合中节点为叶子节点的树,实现了 一种根据节点集合构造节点关系树的方法,通过所构造的树,可以快速查找节 点集合中各节点及其上级节点的关系,速度快、效率高。


图1是本发明实施例提供的才艮据节点集合构造节点关系树的方法的实现流
程图2是本发明实施例提供的树的结构示意图3是本发明实施例提供的根据节点集合构造的节点关系树的结构示意
图4是本发明实施例提供的根据节点集合构造节点关系树的装置的结构
图5是本发明实施例提供的树构造单元的结构图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,通过以离节点集合中各节点最近的共有上级节点为根 节点,根据存储的节点关系,构造以节点集合中节点为叶子节点的树。
图1示出了本发明实施例提供的根据节点集合构造节点关系树的方法的实
现流程,详述如下
在步骤S101中,在存储的节点关系中查找离节点集合中各节点最近的共有 上级节点;
在步骤S102中,以查找到的共有上级节点为根节点,根据存储的节点关系,
构造以节点集合中节点为叶子节点的树。
其中,构造以节点集合中节点为叶子节点的树的步骤具体为;
步骤1 .判断节点集合中的各节点或节点集合中各节点的上级节点是否是根
节点的下级节点;
步骤2.如果节点集合中的节点或节点集合中节点的上级节点是根节点的下 级节点,则将相应节点添加到根节点下的相应位置,否则不做任何操作。
下面具体说明本发明实施例提供的根据节点集合构造节点关系树的方法的 处理流程,假如存在图2所示的树,节点集合为(F、 E、 K、 G}。
其中,步骤S101,在存储的节点关系中查找离节点集合中各节点最近的共 有上级节点的步骤具体为
步骤l.获取节点集合中各节点的长编码;
步骤2.比较节点集合中各节点长编码,得到长编码交集,以所述长编码交 集对应的节点为节点集合中各节点的共有上级节点。
在本发明实施例中,树中各节点的节点编码都是唯一的。如图2中所示的 树,A、 B、 C等字母即为树中各节点的节点编码。由父节点的长编码和本节点的节点编码构成本节点的长编码,树中各节点的长编码都是唯一的,如图2中 所示的树,A的长编码就是A, B的长编码就是A!B,依次类推得F的长编码 是A旧!D!F, H的长编码就是A!B!H。这样,由节点的长编码就可以知道该节 点有多少个上级节点等信息, 一颗树中只有根节点的长编码与节点编码是相同 的。节点集合(F、 E、 K、 G〉中,F的长编码是A旧!D!F, E的长编码是A!C!E, K的长编码是A!C! K, G的长编码是A! G。当然,各节点长编码的表现形式可 以根据需要进行调整,中间的"!,,可以用其他符号或形式等表示。
这里,存储的节点关系可以为各节点的长编码,比较节点集合(F、 E、 K、 G〉中各节点的长编码即可得到其交集为A,那么A节点即为离该节点集合中各
节点最近的共有上级节点。
接着,以A节点为根,根据节点集合(F、 E、 K、 G》中各节点的长编码将 相应节点添加到树中。这里F的长编码为A旧!D!F,判断得到A下面是B,则 将相应的B节点添加为A节点的下级节点。接着判断得到B下面是D,则将D 节点添加为B节点的下级节点。继续判断得到D下面是F,则将F节点添加为 D节点的下级节点。完成后,继续判断其他E、 K、 G节点的长编码,才艮据判断 结果将相应节点添加到树中。完成后,得到的树即为根据节点集合(F、 E、 K、 G〉构造的节点关系的树,如图3所示。
当然,如果存储的节点关系不是各节点的长编码,则先根据存储的节点关 系为各节点添加长编码,然后再进行处理。
进一步地,节点编码可以只是在树中同一级别的节点中唯一,例如,根节 点下各子节点的编码在根节点下所有子节点的编码中唯一,这样得到的树中各 节点的长编码也在整颗树中唯一。此时,就必需从各节点长编码的第一位开始 比较,得到长编码交集。
当然,除了使用节点的长编码,还可以采用其他方法查找离节点集合中各 节点最近的共有上级节点,例如,根据存储的节点关系,从下向上查找节点集 合中各节点的上级节点,找到的第一个上级节点即为所需的离节点集合中各节点最近的共有上级节点。
有些时候需要从根节点开始一层层向下构造与所选节点相关的树,为了满 足该需要、节约处理操作、提高效率,过滤树中暂时不需要添加的节点,作为 本发明的一个优选实施例,上述构造以节点集合中节点为叶子节点的树的步骤
具体为
步骤l.接收所构造的树中当前拥有节点的节点选择信息; 在一开始,所构造的树中只有根节点,接收的节点选择信息只能是根节点 选择信息。
步骤2.在节点集合中的节点或节点集合中节点的上级节点中查找所选节点 的子节点,并将查找到的子节点添加到所选节点下。
在本发明实施例中,假设节点集合是(B、 C},找到的离B、 C节点最近的 共有上级节点是A节点,那么所构造的树以A节点为根节点,当用户选择A 节点时,在节点集合(B、 C)中的节点或其上级节点中查找A节点的子节点就是 B、 C节点,则将B、 C节点添加到A节点下。这里,虽然G节点也是A节点 的子节点,但是因为G节点即不存在于节点集合(B、 C)中的节点,也不是B、 C节点的上级节点,所以不会将G节点添加到A节点下,此时所构造的树只包 含A、 B、 C节点。
图4示出了本发明实施例提供的根据节点集合构造节点关系树的装置的结 构,为了便于说明仅示出了与本发明实施例相关的部分。
该根据节点集合构造节点关系树的装置可以用于数据处理系统,例如行政 组织管理系统、组织权限管理系统等,这些数据处理系统可以装载于电子设备, 例如计算机、移动电话、个人数码助理(Personal Digital Assistant, PDA)等电 子设备等。该根据节点集合构造节点关系树的装置可以是运行于这些数据处理 系统内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂 件集成到这些电子设备中或者运行于这些电子设备的应用系统中,其中
节点查找单元401,在存储的节点关系中查找离节点集合中各节点最近的共有上级节点。
树构造单元402,以查找到的共有上级节点为根节点,根据存储的节点关 系,构造以节点集合中节点为叶子节点的树。 其中,节点查找单元401包括
长编码获^Mt块4011,获取节点集合中各节点的长编码,其实现方式如上 所述,不再赘述。
节点确认模块4012,比较节点集合中各节点长编码,得到长编码交集,以 所述长编码交集对应的节点为节点集合中各节点的共有上级节点。 树构造单元402包括
判断模块4021,以查找单元401查找到的共有上级节点为根节点,根据存 储的节点关系,判断节点集合中的各节点或节点集合中各节点的上级节点是否 是根节点的下级节点。
第一节点添加模块4022,在节点集合中的节点或节点集合中节点的上级节 点是4艮节点的下级节点时,将相应节点添加到#^节点下的相应位置;否则,不 做任何操作,其实现方式如上所述,不再赘述。
有些时候需要从根节点开始一层层向下构造与所选节点相关的树,为了满 足该需要、节约操作、提高效率,过滤树中暂时不需要添加的节点,作为本发 明的一个优选实施例,如图5所示,树构造单元402包括
接收模块4023,接收所构造的树中当前拥有节点的节点选择信息。
第二节点添加模块4024,在节点集合中的节点或节点集合中节点的上级节 点中查找所选节点的子节点,并将得到的子节点添加到所选节点下。
在本发明实施例中,通过以离节点集合中各节点最近的共有上级节点为才艮 节点,根据存储的节点关系,构造以节点集合中节点为叶子节点的树,实现了 一种根据节点集合构造节点关系树的方法,通过所构造的树,可以快速查找节 点集合中各节点及其上级节点的关系,速度快、效率高。
本领域普通技术人员可以理解,实现上迷实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机
可读M"储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。
权利要求
1、一种根据节点集合构造节点关系树的方法,其特征在于,所述方法包括下述步骤在存储的节点关系中查找离节点集合中各节点最近的共有上级节点;以查找到的共有上级节点为根节点,根据存储的节点关系,构造以节点集合中节点为叶子节点的树。
2、 如权利要求l所述的方法,其特征在于,所述构造以节点集合中节点为 叶子节点的树的步骤具体为判断节点集合中的各节点或节点集合中各节点的上级节点是否是根节点的 下级节点;如果节点集合中的节点或节点集合中节点的上级节点是根节点的下级节 点,则将相应节点添加到根节点下的相应位置。
3、 如权利要求l所述的方法,其特征在于,所述在存储的节点关系中查找 离节点集合中各节点最近的共有上级节点的步骤具体为获取节点集合中各节点的长编码;比较节点集合中各节点长编码,得到长编码交集,以所述长编码交集对应 的节点为节点集合中各节点的共有上级节点。
4、 如权利要求l所述的方法,其特征在于,所述构造以节点集合中节点为 叶子节点的树的步骤具体为接收所构造的树中当前拥有节点的节点选择信息;在节点集合中的节点或节点集合中节点的上级节点中查找所选节点的子节 点,并将查找到的子节点添加到所选节点下。
5、 一种根据节点集合构造节点关系树的装置,其特征在于,所述装置包括 节点查找单元,用于在存储的节点关系中查找离节点集合中各节点最近的共有上级节点;以及树构造单元,用于以查找到的共有上级节点为根节点,根据存储的节点关系,构造以节点集合中节点为叶子节点的树。
6、 如权利要求5所述的装置,其特征在于,所述节点查找单元包括 长编码获^Mt块,用于获取节点集合中各节点的长编码;以及 节点确认模块,用于比较节点集合中各节点长编码,得到长编码交集,以所述长编码交集对应的节点为节点集合中各节点的共有上级节点。
7、 如权利要求5所述的装置,其特征在于,所述树构造单元包括 判断模块,用于以所述查找单元查找到的共有上级节点为根节点,根据存储的节点关系,判断节点集合中的各节点或节点集合中各节点的上级节点是否 是根节点的下级节点;以及第一节点添加模块,用于在节点集合中的节点或节点集合中节点的上级节 点是根节点的下级节点时,将相应节点添加到根节点下的相应位置。
8、 如权利要求5所述的装置,其特征在于,所述树构造单元包括 接收模块,用于接收所构造的树中当前拥有节点的节点选择信息;以及 第二节点添加模块,用于在节点集合中的节点或节点集合中节点的上级节点中查找所选节点的子节点,并将得到的子节点添加到所选节点下。
9、 一种包含权利要求5至8任一权利要求所述根据节点集合构造节点关系 树的装置的数据处理系统。
10、 一种包含权利要求9所述数据处理系统的电子设备。
全文摘要
本发明适用于数据处理领域,提供了一种根据节点集合构造节点关系树的方法、装置、系统及设备,所述方法包括下述步骤在存储的节点关系中查找离节点集合中各节点最近的共有上级节点;以查找到的共有上级节点为根节点,根据存储的节点关系,构造以节点集合中节点为叶子节点的树。在本发明中,通过以离节点集合中各节点最近的共有上级节点为根节点,根据存储的节点关系,构造以节点集合中节点为叶子节点的树,实现了一种根据节点集合构造节点关系树的方法,通过所构造的树,可以快速查找节点集合中各节点及其上级节点的关系,速度快、效率高。
文档编号G06F17/30GK101408895SQ20081021722
公开日2009年4月15日 申请日期2008年11月3日 优先权日2008年11月3日
发明者丽 谢 申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1