二叉树并行查找方法和设备技术

技术编号:6208729 阅读:325 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例涉及二叉树并行查找方法和设备。二叉树并行查找方法包括:以选定的子树阶数将二叉树分成多个子树;为每个子树构造共同关键字,包括:从每个子树的每个节点数据的最高位起,提取子树中全部节点数据的相同的高位数据,作为该子树的子树共同关键字;据根据子树的共同关键字的位数,从待查关键字构造待查高位关键字,包括:按照共同关键字的位数,从最高位起,提取待查关键字的高位数据,作为待查高位关键字;比较待查高位关键字与子树共同关键字,在待查高位关键字与子树共同关键字的比较结果不相等时,根据比较结果确定下一次查找的子树方向,如果相等,则根据并行关键字的比较确定下一次查找的子树方向。根据本发明专利技术实施例,将二叉树压缩为低阶数的子数以降低目标查找树的高度,提取每个子树的共同关键字并为每个子树构造并行查找关键字,可以大大减少对数据存储区的访问次数,提高查找效率。

【技术实现步骤摘要】

本专利技术实施例涉及通信领域,具体涉及二叉树并行查找方法和设备
技术介绍
二叉树被广泛使用于各种查找结构中,其结构简单,查找性能只与树的高度相关。 基于传统的二叉树不能有效提高二叉树的查找性能。现有技术在进行二叉树查找时,必须通过逐层节点比较的方式来完成最终查找。由于需要逐层进行节点比较,因此对于一个高度为H的二叉树来说,需要对内存进行H次访问。使用现有的查找技术,无法再在查找性能上有所突破。
技术实现思路
本专利技术实施例一方面要解决的技术问题是减少内存访问次数,并提高二叉树查找效率。本专利技术实施例提出了一种二叉树并行查找方法,包括以选定的子树阶数将二叉树分成多个子树;为每个子树构造共同关键字,包括从每个子树的每个节点数据的最高位起,提取子树中全部节点数据的相同的高位数据,作为该子树的子树共同关键字;据根据子树的共同关键字的位数,从待查关键字构造待查高位关键字,包括按照共同关键字的位数,从最高位起,提取待查关键字的高位数据,作为待查高位关键字;比较待查高位关键字与子树共同关键字,在待查高位关键字与子树共同关键字的比较结果不相等时,根据比较结果确定下一次查找的子树方向。一种用于二叉树并行查找的设备,设备包括压缩模块,用于以选定的子树阶数将二叉树分成多个子树;并行查找关键字构造模块,用于为每个子树构造共同关键字,包括 从每个子树的每个节点数据的最高位起,提取子树中全部节点数据的相同的高位数据,作为该子树的子树共同关键字,并行查找关键字构造模块用于据根据子树的共同关键字的位数,从待查数构造待查高位关键字,包括按照共同关键字的位数,从最高位起,提取待查关键字的高位数据,作为待查高位关键字;比较模块,用于比较待查高位关键字与子树共同关键字,控制模块,用于在待查高位关键字与子树共同关键字的比较结果不相等时,根据比较结果确定下一次查找的子树方向。根据本专利技术实施例,将二叉树压缩为低阶数的子树,提取每个子树的共同关键字并为每个子树构造并行查找关键字,可以大大减少对数据存储区的访问次数,从而提高查找效率。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中图1是本专利技术实施例方法的流程图;图2是本专利技术实施例所使用的二叉树的结构图;图3是本专利技术实施例的设备的结构图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例的构思在于,在二叉树中进行节点比较时,首先将二叉树划分成低阶子树(例如,3阶子树),将每个子树的节点数据的高位数据提取出来,将所述高位数据与待查数据高位数据比较,如果待查关键字的高位数据与子树的共同关键字不相等,则根据高位数据的比较结果直接确定下一次比较所选取的低阶子树。在待查关键字的高位数据大于子树的共同关键字时,说明待查关键字大于当前子树的全部节点数据,则下一次查找选取的子树为下一层低阶子树中最大的子树。在待查关键字的高位数据小于子树的共同关键字时,说明待查关键字小于当前子树的全部节点数据,则下一次查找选取的子树为下一层低阶子树中最小的子树。利用这种方式,可以快速过滤掉待查关键字的高位数据与子树节点数据的高位数据不同的子树,而免于比较低位数据,加快了查找速度,提高了查找效率。 在待查关键字的高位数据等于节点数据的高位数据时,利用子树节点数据的一定位数的低位数据构造并行查找关键字,通过一次性比较,来确定下一次查找所选取的子树。这样可以减少比较步骤,加快查找速度。本专利技术实施例的具体示例将在以下参照附图进行详细描述。图1是本专利技术实施例的二叉树查找方法的流程图。该方法包括110 以选定的子树阶数将所述二叉树分成多个子树;120 为每个子树构造共同关键字,包括从每个子树的每个节点数据的最高位起,提取所述子树中全部节点数据的相同的高位数据,作为该子树的子树共同关键字;130:据根据所述子树的共同关键字的位数,从待查关键字构造待查高位关键字, 包括按照所述共同关键字的位数,从最高位起,提取待查关键字的高位数据,作为待查高位关键字;140:比较所述待查高位关键字与所述子树共同关键字,在所述待查高位关键字与所述子树共同关键字的比较结果不相等时,根据比较结果确定下一次查找的子树方向。以下参照图2,以具体的例子来说明本专利技术实施例的方法。图2是实施本专利技术实施例的二叉树查找方法的二叉树的结构图。需要说明的是,图2中给出的是完全二叉树,但是本专利技术实施例同等地适用于非完全二叉树。另外,本专利技术实施例所使用的二叉树为有序二叉树。例如,图2中所示二叉树为有序二叉树,且其中节点数据的大小关系为A至G递增。 根据本专利技术实施例,例如将图2所示二叉树分成3阶子树,其中节点A至G构成一个3阶子树SS,节点A、C、E和G下方各有两个3阶子树,分别赋予附图标记为SO至S7。需要说明的是,将二叉树分成3阶子树只是一种举例说明。本领域技术人员应该明白,可以根据计算能力以及实际需要,例如二叉树为非完全二叉树,左子树或右子树缺少多个节点,则可以将二叉树分成4阶子树、5阶子树,以提高查找效率。在二叉树分成3阶子树之后,将为每个子树,包括子树SS、S0_S7构造共同关键字。 例如,图2中SS子树的节点A-G的数据如下表所示表 权利要求1.一种二叉树并行查找方法,其特征在于, 以选定的子树阶数将所述二叉树分成多个子树;为每个子树构造共同关键字,包括从每个子树的每个节点数据的最高位起,提取所述子树中全部节点数据的相同的高位数据,作为该子树的子树共同关键字;根据所述子树的共同关键字的位数,从待查树构造待查高位关键字,包括按照所述共同关键字的位数,从最高位起,提取待查关键字的高位数据,作为待查高位关键字;比较所述待查高位关键字与所述子树共同关键字,在所述待查高位关键字与所述子树共同关键字的比较结果不相等时,根据比较结果直接确定下一次查找的子树方向。2.如权利要求1所述的方法,其特征在于,所述方法还包括 在所述待查高位关键字与所述子树共同关键字的比较结果相等时,为每个子树构造并行查找关键字,其中从每个节点数据的所述相同的高位数据起,依次截取选定位数的数据,作为压缩关键字,依据每个查找子树中节点数据的大小关系顺序, 将来自每个节点数据的所述压缩关键字拼接成所述子树的并行查找关键字,每个压缩关键字之间以符号位隔开,根据所述待查数据构造待查并行关键字,其中从所述待查数据的所述高位数据起,依次截取所述选定位数的数据,作为待查关键字,并按照所述子树的节点数目将所述待查关键字重复拼接成待查并行关键字,每个待查关键字之间以符号位隔开, 将所述待查并行关键字减去并行查找关键字,得到结果关键字; 在所述结果关键字中,确定未发生变化的符号位的个数,根据所述结果关键字中未发生变化的符号位的个数,确定下一次查找的子树方向。3.如权利要求2所述的方法,其特征在于,在本文档来自技高网...

【技术保护点】
1.一种二叉树并行查找方法,其特征在于,以选定的子树阶数将所述二叉树分成多个子树;为每个子树构造共同关键字,包括:从每个子树的每个节点数据的最高位起,提取所述子树中全部节点数据的相同的高位数据,作为该子树的子树共同关键字;根据所述子树的共同关键字的位数,从待查树构造待查高位关键字,包括:按照所述共同关键字的位数,从最高位起,提取待查关键字的高位数据,作为待查高位关键字;比较所述待查高位关键字与所述子树共同关键字,在所述待查高位关键字与所述子树共同关键字的比较结果不相等时,根据比较结果直接确定下一次查找的子树方向。

【技术特征摘要】

【专利技术属性】
技术研发人员:商红章
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1