CN108804570A - 一种树型层级结构的分布、存储与检索方法 - Google Patents
一种树型层级结构的分布、存储与检索方法 Download PDFInfo
- Publication number
- CN108804570A CN108804570A CN201810500942.4A CN201810500942A CN108804570A CN 108804570 A CN108804570 A CN 108804570A CN 201810500942 A CN201810500942 A CN 201810500942A CN 108804570 A CN108804570 A CN 108804570A
- Authority
- CN
- China
- Prior art keywords
- hierarchical structure
- level
- node
- ray
- circular arc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种树型层级结构的分布、存储与检索方法,其包括步骤:S1、将每个一级层级结构所包含的范围对应为一个发散状扇形区域;S2、将位于同一发散状扇形区域内层级依次增大的并排层级结构节点与半径依次增大的圆弧一一对应;S3、将并排层级结构中的每个节点分别对应到对应圆弧被划分的圆弧段,将该层级结构节点分别对应到该圆弧段与和该圆弧段相邻射线之间形成的发散状扇形区域;S4、获取每个层级结构节点所对应的角度范围;S5根据层级与角度值对每个层级结构节点进行存储与检索,实现对树型层级结构的存储与检索。本发明能够快速查找并定位,突破了某些方法采用固定节点数或预留节点数不足的瓶颈,后续变动节点方便灵活。
Description
技术领域
本发明涉及数据分布与检索领域,具体涉及一种树型层级结构的分布、存储与检索方法。
背景技术
树型层级结构广泛存在于各企业组织、有推荐或血缘关系的直销公司或销售团队中,其存在一对多、非线性等特点,其相关节点不能用明确的线性算法进行表达。现有技术中对树型层级结构主要有以下几种分布方式:
1、单一继承,将上下级间的关系视为继承,存储节点信息时只记录某节点的父节点信息,记录量较少,查找节点间的关系时使用递归,其运行速度慢、能耗高。
2、路径枚举,每个节点从自身向上直至顶点有且仅有一条路径,需要记录这条路径上所有节点特征码(唯一识别码),查找上下级节点时需要全表查询,通过全路径可以查找到某一节点、半路径可以查找到相似节点。该算法中存储路径字段不能被索引,查询速度较慢,修改节点信息时改动数据较多,且容易出错。
3、嵌套集(或左右值编码),以遍历为基础,从顶点出发到某节点的序数为左值、遍历路径返回顶点时到此节点的序数为右值,存储节点信息时只记录左右两值,记录量较少,查找下级节点较为简易、且避免了递归的高能耗,但查询父级节点较为困难,且每次增加、删除、修改节点会频繁更新数据,速度较慢、性能较低。
4、多点继承(或全点位),将上下级间的关系视为继承,存储节点信息时将与之对应的上1级到上N级直至顶点的节点位置全部记录下来,每一个对应关系作为一条记录进行存储,记录量较大、较全,查找上下级间的节点关系时速度较快,但其数据量较大,删除或修改节点时更新数据较多,且容易出错。
现有技术中要么存储数据量大,要么查找难,要么修改复杂,不利于统筹管理。
发明内容
针对现有技术中的上述不足,本发明提供的树型层级结构的分布、存储与检索方法提供了一种利于统筹管理树型层级结构(数据)的方法。
为了达到上述发明目的,本发明采用的技术方案为:
提供一种树型层级结构的分布、存储与检索方法,其包括以下步骤:
S1、从同一基点作数量大于等于一级层级结构节点总数的射线,将每个一级层级结构所包含的范围分别对应到一个相邻射线之间形成的发散状扇形区域;
S2、在每个一级层级结构所对应的发散状扇形区域内以所述基点为圆心,根据该一级层级结构范围内的层数作半径依次增大的圆弧,将该一级层级结构范围内层级依次增大的并排层级结构节点与半径依次增大的圆弧一一对应;
S3、根据层级所属关系,依次在半径从小到大的圆弧上根据该圆弧对应的并排层级结构节点总数作反向延长线过所述基点的射线,将该并排层级结构中的每个节点分别对应到对应圆弧被射线划分的圆弧段,将该层级结构节点分别对应到该圆弧段与和该圆弧段相邻射线之间形成的发散状扇形区域,完成树型层级结构的分布;
S4、获取每条射线与X轴正方向的夹角,进而得到每个层级结构节点所对应的角度范围;
S5、根据层级与角度值对每个层级结构节点进行存储与检索,实现对树型层级结构的存储与检索。
进一步地,步骤S1中从同一基点作数量大于等于一级层级结构节点总数的射线的方法为:
以二维坐标轴原点为基点,以X轴正方向为第一根射线,以逆时针方向依次设置剩余射线。
进一步地,步骤S2中半径依次增大的圆弧数大于等于该一级层级结构范围内的层数。
进一步地,步骤S3中在该圆弧上设置的射线的数量m与该圆弧对应的并排层级结构节点总数n的关系为:
m≥n-1。
本发明的有益效果为:本发明每个节点只占用一条记录,克服了同类算法记录量大、数据冗余较多的问题;每个节点与其上下级节点构成线性对应关系,能够快速查找并定位,克服了同类方法中采用递归或遍历的低效和高能耗缺点;本方法使得每一层级不限制宽度(节点个数)存储,突破了某些方法采用固定节点数或预留节点数不足的瓶颈;本方法使得同层级相邻或相隔的兄弟节点间也容易计算和检索上下层次的弊端;本方法既可以将每一层级节点数据按实记录、有节点后存储,又可以预留角度范围灵活应变后续变动,灵活度高。
附图说明
图1为本发明的流程示意图;
图2为本发明对树型层级结构的分布示意图;
图3为层级结构节点分别对应到该圆弧段与和该圆弧段相邻射线之间形成的发散状扇形区域的示意图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图1所示,该树型层级结构的分布、存储与检索方法包括以下步骤:
S1、从同一基点作数量大于等于一级层级结构节点总数的射线,将每个一级层级结构所包含的范围分别对应到一个相邻射线之间形成的发散状扇形区域;
S2、在每个一级层级结构所对应的发散状扇形区域内以所述基点为圆心,根据该一级层级结构范围内的层数作半径依次增大的圆弧,将该一级层级结构范围内层级依次增大的并排层级结构节点与半径依次增大的圆弧一一对应,即从二级并排层级结构节点开始与半径依次增大的圆弧一一对应,L级并排层级结构节点对应L-1级圆弧,L为大于等于2的自然数。
S3、根据层级所属关系,依次在半径从小到大的圆弧上根据该圆弧对应的并排层级结构节点总数作反向延长线过所述基点的射线,将该并排层级结构中的每个节点分别对应到对应圆弧被射线划分的圆弧段,将该层级结构节点分别对应到该圆弧段与和该圆弧段相邻射线之间形成的发散状扇形区域,完成树型层级结构的分布;
S4、获取每条射线与X轴正方向的夹角,进而得到每个层级结构节点所对应的角度范围;
S5、根据层级与角度值对每个层级结构节点进行存储与检索,实现对树型层级结构的存储与检索。
步骤S1中从同一基点作数量大于等于一级层级结构节点总数的射线的方法为:以二维坐标轴原点为基点,以X轴正方向为第一根射线,以逆时针方向依次设置剩余射线。
步骤S2中半径依次增大的圆弧数大于等于该一级层级结构范围内的层数。当半径依次增大的圆弧数等于该一级层级结构范围内的层数时,表示未预留额外的层数,半径依次增大的圆弧数大于该一级层级结构范围内的层数的数值表示预留额外层数的数量。
步骤S3中在该圆弧上设置的射线的数量m与该圆弧对应的并排层级结构节点总数n的关系为:m≥n-1。当m=n-1时,表示该并排层级结构未预留额外节点范围,若m-(n-1)=j,则表示该并排层级结构预留了j个额外节点范围。
在本发明的一个实施例中,如图2所示,存在一级层级结构节点(部门)A、B和C,O点为基点即圆心,X轴正方向为第一条射线,分别作射线OA、射线OB和射线OC,扇形COX的面积区域为一级并列层级结构的范围,扇形COX区域以外的范围可以作为预留范围,便于增设其他层级结构节点;扇形AOX的面积区域为一级层级结构节点A的范围;扇形BOA的面积区域为一级层级结构节点B的范围;扇形COB的面积区域为一级层级结构节点C的范围。
在扇形AOX中,一级层级结构节点A包括二级节点A1、A2和A3,则路径A1-一级圆弧-X围成的区域为二级层级结构节点A1的范围;路径A2-一级圆弧-A1围成的区域为二级层级结构节点A2的范围;路径A3-一级圆弧-A2围成的区域为二级层级结构节点A3的范围;路径A-一级圆弧-A3围成的区域为一级层级结构节点A的预留范围,可以用于增设其他位于一级层级结构节点A下游的层级结构节点。
二级层级结构节点A1包括三级层级结构节点A11和A12,则路径A11-二级圆弧-X围成的区域为三级层级结构节点A11的范围;路径A12-二级圆弧-X围成的区域为三级层级结构节点A12的范围;路径A1-二级圆弧-A12围成的区域为二级层级结构节点A1的预留范围,可以用于增设其他位于二级层级结构节点A1下游的层级结构节点。
三级层级结构节点A11包括四级层级结构节点A111,则路径A111-三级圆弧-X围成的区域为四级层级结构节点A111的范围;路径A11-三级圆弧-A111围成的区域为三级层级结构节点A11的预留范围,可以用于增设其他位于三级层级结构节点A11下游的层级结构节点。
三级层级结构节点A12包括四级层级结构节点A121和A122,则路径A121-三级圆弧-A11围成的区域为四级层级结构节点A121的范围;路径A122-三级圆弧-A121围成的区域为四级层级结构节点A122的范围;路径A12-三级圆弧-A122围成的区域为三级层级结构节点A12的预留范围,可以用于增设位于三级层级结构节点A12下游的层级结构节点。
以此类推,对于任意Q级层级结构节点,其对应的范围为Q-1级圆弧上与Q-1级层级结构节点相对应的圆弧段,该圆弧段与和该圆弧段相邻射线围成的区域为该Q级层级结构节点的范围。当Q取值为2时,对于二级层级结构节点A1,图2中路径A1-一级圆弧-X围成的区域为二级层级结构节点A1的范围;如图3所示,对于二级层级结构节点A2,图2中的路径A2-一级(2-1=1级)圆弧-A1围成的区域为二级层级结构节点A2的范围。
本发明在分布好树型层级结构(数据)的基础上,给出一个角度值,在本存储中可以找到该角度所在的多个大小不一的扇形区域,即存在多级与该角度值对应的层级结构节点,若再限定层数,即可唯一确定包含该角度的最大面积扇形区域:即具体角度确定同一分支,层数确定该层所在层级结构节点。
本发明将树型层级结构转化为角度值,使得同一分支下的成员均在既定范围内,可以不断发散和延伸,切实做到不限制分支深度、不限制同级数量(宽度),但均可以被识别和查询,将现有技术中树型层级结构不能线性化的层次关系进行了强制线性化而不影响其实质。被本方法存储的树型层级结构(数据)只需要存储各个层级结构节点的级数和角度范围值,即可自动排列其归属关系。同理,在检索本方法存储的树型层级结构(数据)时,若单独输入角度值,则可检索包含该角度值的角度范围,进而得到与该角度范围对应的分支;若单独输入层数,则可检索该层并列的所有层级结构节点;当同时输入角度值和层数时,可以先检索角度值对应的分支,再在该分支中检索对应的层数即可检索具体的层级结构节点,如:
在上述实施例中,若检索时输入角度值位于最小角度范围∠A121OX与∠A122OX之间,则选出层级结构节点A122所在的分支;若检索时输入的层级为二级,则在层级结构节点A122所在分支的二级层级结构节点为A1。
在上述实施例中,若检索时输入角度值位于最小角度范围∠A121OX与∠A122OX之间,则选出层级结构节点A122所在的分支;若检索时输入的层级为三级,则在层级结构节点A122所在分支的三级层级结构节点为A12。
在上述实施例中,若检索时输入角度值位于最小角度范围∠A121OX与∠A122OX之间,则选出层级结构节点A122所在的分支;若检索时输入的层级为四级,则在层级结构节点A122所在分支的四级层级结构节点为A122。
相同层级结构的分布方法相同,一级层级结构节点B和C及其一级层级结构均可以一级层级结构A的分布、存储与检索方法进行。
若需要在本方法的基础上对已分布、存储的树型层级结构进行修改,修改某节点时只需更新与本节点对应的角度值即可,修改节点及其下方所有分支时只需重新获取并更新相应角度范围即可。删除某节点时只需删除其所在的单条记录,并可留空或由其他成员填补而不影响正常的树结构,删除某节点或其下方所有成员时只需删除该节点角度值范围内的多条记录即可。
本发明将一级层级结构节点外的并列层级结构对应为圆弧,将层级结构节点对应为圆弧段,将层级结构节点中的成员分布在相邻圆弧段之间(L级层级结构节点的成员分布在L-1级圆弧与L级圆弧之间;一级层级结构节点的成员分布在基点与对应的一级圆弧段之间)。
综上所述,本发明每个节点只占用一条记录,克服了同类算法记录量大、数据冗余较多的问题;每个节点与其上下级节点构成线性对应关系,能够快速查找并定位,克服了同类方法中采用递归或遍历的低效和高能耗缺点;本方法使得每一层级不限制宽度(节点个数)存储,突破了某些方法采用固定节点数或预留节点数不足的瓶颈;本方法使得同层级相邻或相隔的兄弟节点间也容易计算和检索,克服了之前算法只能计算和检索上下层次的弊端;本方法既可以将每一层级节点数据按实记录、有节点后存储,又可以预留角度范围灵活应变后续变动,灵活度高。
Claims (4)
1.一种树型层级结构的分布、存储与检索方法,其特征在于:包括以下步骤:
S1、从同一基点作数量大于等于一级层级结构节点总数的射线,将每个一级层级结构所包含的范围分别对应到一个相邻射线之间形成的发散状扇形区域;
S2、在每个一级层级结构所对应的发散状扇形区域内以所述基点为圆心,根据该一级层级结构范围内的层数作半径依次增大的圆弧,将该一级层级结构范围内层级依次增大的并排层级结构节点与半径依次增大的圆弧一一对应;
S3、根据层级所属关系,依次在半径从小到大的圆弧上根据该圆弧对应的并排层级结构节点总数作反向延长线过所述基点的射线,将该并排层级结构中的每个节点分别对应到对应圆弧被射线划分的圆弧段,将该层级结构节点分别对应到该圆弧段与和该圆弧段相邻射线之间形成的发散状扇形区域,完成树型层级结构的分布;
S4、获取每条射线与X轴正方向的夹角,进而得到每个层级结构节点所对应的角度范围;
S5、根据层级与角度值对每个层级结构节点进行存储与检索,实现对树型层级结构的存储与检索。
2.根据权利要求1所述的树型层级结构的分布、存储与检索方法,其特征在于:所述步骤S1中从同一基点作数量大于等于一级层级结构节点总数的射线的方法为:
以二维坐标轴原点为基点,以X轴正方向为第一根射线,以逆时针方向依次设置剩余射线。
3.根据权利要求1所述的树型层级结构的分布、存储与检索方法,其特征在于:所述步骤S2中半径依次增大的圆弧数大于等于该一级层级结构范围内的层数。
4.根据权利要求1所述的树型层级结构的分布、存储与检索方法,其特征在于:所述步骤S3中在该圆弧上设置的射线的数量m与该圆弧对应的并排层级结构节点总数n的关系为:
m≥n-1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810500942.4A CN108804570A (zh) | 2018-05-23 | 2018-05-23 | 一种树型层级结构的分布、存储与检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810500942.4A CN108804570A (zh) | 2018-05-23 | 2018-05-23 | 一种树型层级结构的分布、存储与检索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108804570A true CN108804570A (zh) | 2018-11-13 |
Family
ID=64091440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810500942.4A Pending CN108804570A (zh) | 2018-05-23 | 2018-05-23 | 一种树型层级结构的分布、存储与检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108804570A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639583A (zh) * | 2018-12-19 | 2019-04-16 | 迈普通信技术股份有限公司 | 拓扑图绘制方法、装置及电子设备 |
CN111078689A (zh) * | 2019-11-20 | 2020-04-28 | 深圳希施玛数据科技有限公司 | 一种非连续型预排序遍历树算法的数据处理方法及*** |
CN111125269A (zh) * | 2019-12-31 | 2020-05-08 | 腾讯科技(深圳)有限公司 | 一种数据管理方法、血缘关系显示方法和相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040015486A1 (en) * | 2002-07-19 | 2004-01-22 | Jiasen Liang | System and method for storing and retrieving data |
CN103049580A (zh) * | 2013-01-17 | 2013-04-17 | 北京工商大学 | 一种层次数据的可视化方法和设备 |
CN103279544A (zh) * | 2013-06-05 | 2013-09-04 | 中国电子科技集团公司第十五研究所 | 树型结构数据在关系型数据库中的存储和查询方法及装置 |
CN103699648A (zh) * | 2013-12-26 | 2014-04-02 | 成都市卓睿科技有限公司 | 用于快速检索的树形数据结构及其实现方法 |
CN104008122A (zh) * | 2014-02-19 | 2014-08-27 | 浙江工商大学 | 层次化数据的动态多级饼图展示方法 |
-
2018
- 2018-05-23 CN CN201810500942.4A patent/CN108804570A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040015486A1 (en) * | 2002-07-19 | 2004-01-22 | Jiasen Liang | System and method for storing and retrieving data |
CN103049580A (zh) * | 2013-01-17 | 2013-04-17 | 北京工商大学 | 一种层次数据的可视化方法和设备 |
CN103279544A (zh) * | 2013-06-05 | 2013-09-04 | 中国电子科技集团公司第十五研究所 | 树型结构数据在关系型数据库中的存储和查询方法及装置 |
CN103699648A (zh) * | 2013-12-26 | 2014-04-02 | 成都市卓睿科技有限公司 | 用于快速检索的树形数据结构及其实现方法 |
CN104008122A (zh) * | 2014-02-19 | 2014-08-27 | 浙江工商大学 | 层次化数据的动态多级饼图展示方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639583A (zh) * | 2018-12-19 | 2019-04-16 | 迈普通信技术股份有限公司 | 拓扑图绘制方法、装置及电子设备 |
CN111078689A (zh) * | 2019-11-20 | 2020-04-28 | 深圳希施玛数据科技有限公司 | 一种非连续型预排序遍历树算法的数据处理方法及*** |
CN111078689B (zh) * | 2019-11-20 | 2023-05-26 | 深圳希施玛数据科技有限公司 | 一种非连续型预排序遍历树算法的数据处理方法及*** |
CN111125269A (zh) * | 2019-12-31 | 2020-05-08 | 腾讯科技(深圳)有限公司 | 一种数据管理方法、血缘关系显示方法和相关装置 |
CN111125269B (zh) * | 2019-12-31 | 2023-05-02 | 腾讯科技(深圳)有限公司 | 一种数据管理方法、血缘关系显示方法和相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804570A (zh) | 一种树型层级结构的分布、存储与检索方法 | |
US7523288B2 (en) | Dynamic fragment mapping | |
CN101719141B (zh) | 基于目录对象的文件处理方法和*** | |
CN101673307B (zh) | 空间数据索引方法及*** | |
CN102722531A (zh) | 一种云环境中基于分片位图索引的查询方法 | |
CN105959419A (zh) | 基于一致性树的分布式存储结构的构建方法及*** | |
CN105630803B (zh) | 文档型数据库建立索引的方法和装置 | |
CN102609530A (zh) | 一种分区域双树结构的空间数据库索引方法 | |
CN103559139B (zh) | 一种数据存储方法及装置 | |
CN105608224A (zh) | 一种提高海量数据查询性能的正交多哈希映射索引方法 | |
CN107766433A (zh) | 一种基于Geo‑BTree的范围查询方法及装置 | |
CN102890719B (zh) | 一种对车牌号进行模糊搜索的方法及装置 | |
US20210067330A1 (en) | Sparsed merkle tree method and system for processing sets of data for storing and keeping track of the same in a specific network | |
CN104346444A (zh) | 一种基于路网反空间关键字查询的最佳选址方法 | |
CN112991070A (zh) | 一种金融股权知识大图的多层股权穿透方法 | |
Shao et al. | Trip planning queries in indoor venues | |
CN114706848A (zh) | 区块链数据存储、更新、读取方法及装置、电子设备 | |
CN110597805B (zh) | 一种内存索引结构处理方法 | |
CN100395712C (zh) | 软件***的资源管理方法 | |
Bhushan et al. | Big data query optimization by using locality sensitive bloom filter | |
Furukawa | Markovian decision processes with compact action spaces | |
CN105138632A (zh) | 一种文件数据组织管理方法及文件管理服务器 | |
CN101719155B (zh) | 一种支持分布式多集群计算环境的多维属性范围查询的方法 | |
CN115841094A (zh) | 一种编码方法、装置、设备、介质及产品 | |
de Berg et al. | Trekking in the Alps without freezing or getting tired |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181113 |
|
RJ01 | Rejection of invention patent application after publication |