一种树状结构节点的排序方法、装置及查询系统制造方法及图纸

技术编号:8131078 阅读:199 留言:0更新日期:2012-12-27 03:15
本发明专利技术适用于数据结构领域,提供了一种树状结构节点的排序方法、装置及查询系统。所述方法包括步骤:获取组成树的所有节点的节点数据,所述节点数据包括节点所在树状结构的层数、所述节点的父节点、所述节点的子节点的个数;对组成树的所有节点进行唯一标识,所述标识用于唯一标识所述组成树的所有节点;根据所述节点数据以及节点的唯一标识对树的所有节点进行排序;保存所述节点数据以及所述节点的唯一标识。本发明专利技术实施例只需一次列表数据遍历操作,就能将所有节点排在正确的位置上,因此保证了数据库性能的稳定,并且,该方法在不增加开销的情况下也能够支持多级树状结构的自由扩展,增强实用性。

【技术实现步骤摘要】
一种树状结构节点的排序方法、装置及查询系统
本专利技术属于数据结构领域,尤其涉及一种树状结构节点的排序方法、装置及查询系统。
技术介绍
树状结构是指数据库中一个数据集合以及在该集合上存在的一种关系。集合中的各个元素称为树的节点,而集合上各个节点存在的关系称为父子关系,该父子关系在树的节点之间建立了一个层次结构。集合中通常包含多棵树状结构,集合中的一级节点对应树的根节点,不同一级节点之间没有直接的关系,只有一定的排列顺序。现有的构建树状结构排序的过程中,首先从每一个一级节点开始,采用递归查询的方式遍历其下所有层次的子节点记录,再根据该子节点记录将相应的子节点排列在最终序列的正确位置上。如采用先序遍历的方式遍历一个一级节点所有层次的子节点记录,由于该先序遍历首先访问根节点然后遍历左子树,最后遍历右子树,因此第一次数据库查询操作首先获得根节点的记录数据,若该根节点的记录数据表明该根节点存在左右两个子节点,再根据该根节点的记录数据将该根节点的左节点排列在该一级节点的左边,继续执行第二次数据库查询操作,若获得的左节点记录数据表明该左节点没有子节点,则将该根节点的右节点排列在该根节点的右边。当然,若根节点存在多个子节点,则同样需要多次数据库查询操作才能构建树。由于一次数据库查询只能取得树的一个节点数据,因此,使用该方法构建一棵Q层树状结构的排序需要执行多次数据库操作,多次数据遍历才能将树的所有节点排列在最终序列的正确位置上,影响了数据库的性能,并且,随着树状结构层次Q数值的增长,多级叶子节点排序的时间开销增大,不利于后期的树层次数Q的扩展。
技术实现思路
本专利技术实施例提供了一种树状结构节点的排序方法,旨在解决现有的构建树状结构的排序存在的影响数据库性能以及难以扩展的问题。本专利技术实施例是这样实现的,一种树状结构节点的排序方法,所述方法包括下述步骤:获取组成树的所有节点的节点数据,所述节点数据包括节点所在树状结构的层数、所述节点的父节点、所述节点的子节点的个数;对组成树的所有节点进行唯一标识,所述标识用于唯一标识所述组成树的所有节点;根据所述节点数据以及节点的唯一标识对树的所有节点进行排序;保存所述节点数据以及所述节点的唯一标识。本专利技术实施例的另一目的在于提供一种树状结构节点的排序装置,所述装置包括:节点数据获取单元,用于获取组成树的所有节点的节点数据,所述节点数据包括节点所在树状结构的层数、所述节点的父节点、所述节点的子节点的个数;节点标识单元,用于对组成树的所有节点进行唯一标识,所述标识用于唯一标识所述组成树的所有节点;节点排序单元,用于根据所述节点数据以及节点的唯一标识对树的所有节点进行排序;节点数据保存单元,用于保存所述节点数据以及所述节点的唯一标识。本专利技术实施例的另一目的在于提供一种包括上述树状结构节点的排序装置的查询系统。本专利技术实施例获取树的所有节点数据,并对该树的所有节点进行唯一标识,根据该所有节点数据以及节点的唯一标识对树的所有节点进行排序,再将排序后的节点数据以及节点的唯一标识保存在包括记录节点数据的字段的列表中。遍历一次该列表,就能够获取各个节点的节点数据以及节点的唯一标识,进而根据获取的节点数据以及节点的唯一标识能够正确构建树。由于只需一次列表数据遍历操作,就能将所有节点排在正确的位置上,因此保证了数据库性能的稳定,并且,该方法在不增加开销的情况下也能够支持多级树状结构的自由扩展,增强实用性。附图说明图1是本专利技术第一实施例提供的树状结构节点的排序方法流程图;图2是本专利技术第一实施例提供的树状结构图;图3是本专利技术第二实施例提供的树状结构节点的排序方法流程图;图4是本专利技术第三实施例提供的树状结构节点的排序装置的结构图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术实施例获取树的所有节点数据,并对该树的所有节点进行唯一标识,根据该节点数据以及节点的唯一标识对树的所有节点进行排序,再保存该节点数据以及节点的唯一标识。本专利技术实施例提供了一种:树状结构节点的排序方法、装置及查询系统。所述方法包括:获取组成树的所有节点的节点数据,所述节点数据包括节点所在树状结构的层数、所述节点的父节点、所述节点的子节点的个数;对组成树的所有节点进行唯一标识,所述标识用于唯一标识所述组成树的所有节点;根据所述节点数据以及节点的唯一标识对树的所有节点进行排序;保存所述节点数据以及所述节点的唯一标识。所述装置包括:节点数据获取单元,用于获取组成树的所有节点的节点数据,所述节点数据包括节点所在树状结构的层数、所述节点的父节点、所述节点的子节点的个数;节点标识单元,用于对组成树的所有节点进行唯一标识,所述标识用于唯一标识所述组成树的所有节点;节点排序单元,用于根据所述节点数据以及节点的唯一标识对树的所有节点进行排序;节点数据保存单元,用于保存所述节点数据以及所述节点的唯一标识。所述系统包括:包括上述树状结构节点的排序装置的查询系统。本专利技术实施例获取树的所有节点数据,并对该树的所有节点进行唯一标识,根据该所有节点数据以及节点的唯一标识对树的所有节点进行排序,再将排序后的节点数据以及节点的唯一标识保存在包括记录节点数据的字段的列表中。遍历一次该列表,就能够获取各个节点的节点数据以及节点的唯一标识,进而根据获取的节点数据以及节点的唯一标识能够正确构建树。由于只需一次列表数据遍历操作,就能将所有节点排在正确的位置上,因此保证了数据库性能的稳定,并且,该方法在不增加开销的情况下也能够支持多级树状结构的自由扩展,增强实用性。为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。实施例一:图1示出了本专利技术第一实施例提供的树状结构构建方法流程,详述如下:在步骤S11中,获取组成树的所有节点的节点数据,该节点数据包括节点所在树状结构的层数、该节点的父节点、该节点的子节点的个数。获取组成树的所有节点的节点数据,假设树状结构有3层,如图2所示。第一层的节点为一级节点,有A节点、B节点和C节点,第二层的节点为二级节点,第二层的节点为A1节点、A2节点、B1节点以及B2节点,第三层的节点为A11节点、A12节点、A21节点、A22节点,上述节点的创建时间依次靠后,A节点最早创建,而A22节点最迟创建。查询并获取组成树中各个节点的节点数据,如获取节点所在树状结构的层数、该节点的父节点、该节点的子节点以及该节点的子节点的个数等节点数据,在步骤S12中,对组成树的所有节点进行唯一标识,该标识用于唯一标识组成树的所有节点。在获取了组成树的所有节点的节点数据之后,再对该树的所有节点进行唯一标识,该唯一标识用于唯一标识树的节点,一个节点的唯一标识对应于一个树的节点。比如可以用节点的创建时间作为一个节点的唯一标识。在步骤S13中,根据该节点数据以及节点的唯一标识对树的所有节点进行排序。其中,根据该节点数据以及节点的唯一标识对树的所有节点进行排序。的步骤具体为:将一级节点根据该一级节点的唯一标识排列在最终位置上;如,将一个一级节点根据该节点的唯一标识排列在最终序列的第一个位置上;若还存在其他一级节点,则将该一级节点根据该一级节本文档来自技高网...
一种树状结构节点的排序方法、装置及查询系统

【技术保护点】
一种树状结构节点的排序方法,其特征在于,所述方法包括下述步骤:获取组成树的所有节点的节点数据,所述节点数据包括节点所在树状结构的层数、所述节点的父节点、所述节点的子节点的个数;对组成树的所有节点进行唯一标识,所述标识用于唯一标识所述组成树的所有节点;根据所述节点数据以及节点的唯一标识对树的所有节点进行排序;保存所述节点数据以及所述节点的唯一标识。

【技术特征摘要】
1.一种树状结构节点的排序方法,其特征在于,所述方法包括下述步骤:获取组成树的所有节点的节点数据,所述节点数据包括节点所在树状结构的层数、所述节点的父节点、所述节点的子节点的个数;对组成树的所有节点进行唯一标识,所述标识用于唯一标识所述组成树的所有节点;根据所述节点数据以及节点的唯一标识对树的所有节点进行排序;保存所述节点数据以及所述节点的唯一标识;所述根据所述节点数据以及节点的唯一标识对树的所有节点进行排序的步骤具体为:将一级节点根据所述一级节点的唯一标识排列在最终位置上;将二级节点至N-1级节点根据所述二级节点的父节点以及所述二级节点的唯一标识至所述N-1级节点的父节点以及所述N-1级节点的唯一标识排列在最终位置上,所述N为树状结构的总层数;将N级节点根据所述N级节点的父节点以及所述N级节点的唯一标识排列在最终位置上。2.如权利要求1所述的方法,其特征在于,所述将一级节点根据节点的唯一标识排列在最终位置上的步骤具体为:将一个一级节点根据所述节点的唯一标识排列在最终序列的第一个位置上;若还存在其他一级节点,则将所述一级节点根据所述一级节点的唯一标识排列在上一个一级节点所在位置后的第M+1个位置上,所述M值等于上一个一级节点的子节点个数,M大于等于0;按照上述的排列方法依次将剩余的一级节点排列在最终序列的位置上。3.如权利要求1所述的方法,其特征在于,在保存所述节点数据以及所述节点的唯一标识的步骤之后进一步包括下述步骤:查询所述节点数据以及所述节点的唯一标识;根据所述节点数据以及节点的唯一标识构建树。4.如权利要求3所述的方法,其特征在于,所述根据所述节点数据以及节点的唯一标识构建树的步骤具体为:根据一级节点的唯一标识构建树的第一层;根据二级节点的唯一标识以及所述二级节点的父节点构建树的第二层;根据上述构建树的方法依次构...

【专利技术属性】
技术研发人员:黄庆林
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:

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

1