CN102819536A - 树型数据处理方法及装置 - Google Patents
树型数据处理方法及装置 Download PDFInfo
- Publication number
- CN102819536A CN102819536A CN2011102964385A CN201110296438A CN102819536A CN 102819536 A CN102819536 A CN 102819536A CN 2011102964385 A CN2011102964385 A CN 2011102964385A CN 201110296438 A CN201110296438 A CN 201110296438A CN 102819536 A CN102819536 A CN 102819536A
- Authority
- CN
- China
- Prior art keywords
- node
- type data
- child node
- tree type
- subclass
- 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.)
- Granted
Links
Images
Abstract
本发明涉及一种树型数据处理方法及装置,其方法包括:获取树型数据的父节点和子节点;根据树型数据中父节点与子节点之间及各子节点内的隶属关系,以集合方式展示树型数据的结构;并从最外层集合的边界的一侧开始,依次对各集合的边界点编号,每个集合的边界两侧的编号用于限定该集合的范围。本发明解决了现有技术中对树型数据结构管理的不足,使树型数据的管理更高效,查询性能更高,同时消除了树型数据层次的限制,尤其适合海量树型数据管理。如:家族谱、基因谱及BOM物料清单等应用场景。
Description
技术领域
本发明涉及树型数据管理技术领域,尤其涉及一种采用集合嵌套的方式进行的树型数据处理方法及装置。
背景技术
树型数据是指每项数据只有一个父节点和零个或多个子节点(根节点除外)的数据集合。
现有的树型数据大都通过关系数据库进行管理。但是,由于关系数据库中的表没有树型关系,只能呈现简单的平面化数据,而树型数据具有父-子关系,因此,关系数据库中的表不能很好的表示出树型数据的树型特性。
目前,对树型数据的管理有邻接表表示结构和层次码表示结构两种,其中:
如图1所示,在邻接表表示结构中,数据中的每项包含了指向其父节点的指针。邻接表表示法的优势在于其对数据的管理简单,可以很容易的查询出树型数据的直接子节点。但要查询数据的单一路径时,则需要知道该数据所在的层次,另外,如果层次过深时自连接太多,则会严重影响性能;且删除数据时也要特别小心,很容易造成孤立一棵子树的局面。
如图2所示,其为层次码表结构的示意图,层次码也叫组别分类码或群码,是指将整个代码按位分成若干段,按从左到右的次序各段子码依次表示编码对象的大、中、小等类别,由此组成一个有层次及隶属关系的代码,这种代码称为层次码。
在用层次码表示结构管理属性数据时,数据节点的父子关系、度(所在层次)等由层次码的结构决定。其优点是遍历整棵树很容易,但扩展性极差。因为树型数据的最大长度在设计时就已固定,其取决于层次码储存的最大长度。比如,当层次码的最大长度为256时,如果每层用4位表示,则最多只能表示64层。
因此,现有技术对树型数据的管理由于受到树型数据层次的限制而无法实现对树型数据的高效管理,更无法实现海量树型数据的高效管理。
发明内容
本发明的主要目的在于提供一种树型数据处理方法及装置,旨在实现对树型数据的高效管理。
本发明提出一种树型数据处理方法,包括以下步骤:
获取树型数据的父节点和子节点;
根据所述树型数据中父节点与子节点之间及各子节点内的隶属关系,以集合方式展示所述树型数据;并从最外层集合的边界的一侧开始,依次对各集合的边界点编号,每个集合的边界两侧的编号用于限定该集合的范围。
优选地,所述根据树型数据中父节点与子节点之间及各子节点内的隶属关系,以集合方式展示所述树型数据的步骤包括:
以位于最外层的父集合展示所述父节点;
根据所述子节点与所述父节点之间及各子节点内的隶属关系,将所述子节点以相应的子集合嵌套于所述父集合中。
优选地,该方法还包括:对集合内的树型数据进行节点查询、节点新增和/或节点删除处理。
优选地,所述对集合内的树型数据进行节点查询处理包括:
对整个树型数据结构、所有叶子节点、单一路径、节点深度和/或任意节点的直接子节点的查询;所述叶子节点为最小集合展示的子节点。
优选地,所述对集合内的树型数据进行节点添加处理包括:
在非叶子节点下新增节点时,查找当前非叶子节点;将所述当前非叶子节点所在的子集合的右边界点的编号加2,在当前非叶子节点所在的子集合中插入新增节点的子集合;依次更新所述当前非叶子节点右侧各子集合的左、右边界点的编号;
在叶子节点下新增节点时,查找当前叶子节点;将所述当前叶子节点所在的子集合的右边界点的编号加2,在当前叶子节点所在的子集合内插入新增节点的子集合;依次更新所述当前叶子节点右侧各子集合的左、右边界点的编号。
优选地,所述对集合内的树型数据进行节点删除处理包括:
查找待删除的当前子节点;
删除当前子节点,并将该当前子节点右边所有节点所在子集合的左、右边界点的编号及父集合右边界点的编号均减去该当前子节点的宽度值。
本发明还提出一种树型数据处理装置,包括:
获取模块,用于获取树型数据的父节点和子节点;
展示模块,用户根据所述树型数据中父节点与子节点之间及各子节点内的隶属关系,以集合方式展示所述树型数据;并从最外层集合的边界的一侧开始,依次对各集合的边界点编号,每个集合的边界两侧的编号用于限定该集合的范围。
优选地,所述展示模块包括:
父节点展示单元,用于以位于最外层的父集合展示所述父节点;
子节点展示单元,用于根据所述子节点与所述父节点之间及各子节点内的隶属关系,将所述子节点以相应的子集合嵌套于所述父集合中;
编号单元,用于从父集合的边界的一侧开始,依次对各集合的边界点编号,每个集合的边界两侧的编号用于限定该集合的范围。
优选地,该装置还包括:
节点处理模块,用于对集合内的树型数据进行节点查询、节点新增和/或节点删除处理。
优选地,所述节点处理模还用于对整个树型数据结构、所有叶子节点、单一路径、节点深度和/或任意节点的直接子节点的查询;在非叶子节点下新增节点时,查找当前非叶子节点,将当前非叶子节点所在的子集合的右边界点的编号加2,在当前非叶子节点所在的子集合中插入新增节点的子集合;依次更新所述当前非叶子节点右侧各子集合的左、右边界点的编号;在叶子节点下新增节点时,查找当前叶子节点,将所述当前叶子节点所在的子集合的右边界点的编号加2,在当前叶子节点所在的子集合内插入新增节点的子集合;依次更新所述当前叶子节点右侧各子集合的左、右边界点的编号;以及查找待删除的当前子节点,删除当前子节点,并将该当前子节点右边所有节点所在子集合的左、右边界点的编号及父集合右边界点的编号均减去该当前子节点的宽度值。
本发明提出的一种树型数据处理方法及装置,解决了现有技术中对树型数据结构管理的不足,使树型数据的管理更高效,查询性能更高,同时消除了树型数据层次的限制,尤其适合海量树型数据管理。如:家族谱、基因谱及BOM物料清单等应用场景。
附图说明
图1是现有技术中邻接表表结构示意图;
图2是现有技术中层次码表结构示意图;
图3是本发明树型数据处理方法一实施例流程示意图;
图4是本发明树型数据处理方法一实施例中一个实例的树型数据的树状结构示意图;
图5是图4所示的实例的树型数据的集合嵌套结构示意图;
图6是本发明树型数据处理方法一实施例中树型数据的表结构示意图;
图7是本发明树型数据处理方法一实施例中根据树型数据中父节点与子节点之间及各子节点内的隶属关系,以集合方式展示树型数据的流程示意图;
图8是本发明树型数据处理方法另一实施例流程示意图;
图9是本发明树型数据处理装置一实施例结构示意图;
图10是本发明树型数据处理装置一实施例中展示模块的结构示意图;
图11是本发明树型数据处理装置另一实施例结构示意图。
为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
具体实施方式
本发明实施例将整个树型数据作为集合体,树型数据中的父节点作为父集合,子节点作为父集合内的子集合,子节点下的子节点作为子集合内的更小的子集合,从而消除了树型数据层次的限制,提高对树型数据管理的高效性。
如图3所示,本发明一实施例提出一种树型数据处理方法,包括:
步骤S101,获取树型数据的父节点和子节点;
如上所述,树型数据具有父和子的关系,其包括父节点和若干子节点,其中,子节点包括直属父节点的子节点以及隶属父节点的子节点下的子节点,以此类推。
如图4所示,树型数据包括父节点、子节点1、子节点2、子节点3、子节点4、子节点11及子节点12。其中,子节点1、子节点2、子节点3、子节点4为父节点的直属子节点,子节点21及子节点22为子节点2的直属子节点。
步骤S102,根据树型数据中父节点与子节点之间及各子节点内的隶属关系,以集合方式展示树型数据;并从最外层集合的边界的一侧开始,依次对各集合的边界点编号,每个集合的边界两侧的编号用于限定该集合范围;
本实施例不以现有技术中的点和线的树状结构的思路来表示树型数据的结构,而是以集合嵌套的方式来体现树型数据内的隶属关系,树型结构中的父节点作为父集合,子节点作为父集合内的子集合。
如图5所示,通过集合嵌套方式体现的树型数据中,“父节点”为父集合,“子节点1”、“子节点2”、“子节点3”、“子节点4”为父集合的直属子集合,作为子集合的“子节点2”还包括有两个并列的子集合“子节点21”和“子节点22”。以此类推,整个树型数据则成为一个嵌套的集合体。
通过集合的方式,可以清晰的展示树型数据之间的隶属关系,而且可实现树型数据以集合的图示方式进行外部展示,可以提高树型数据的图形展示效果,使用户更直观的了解树型数据的内部隶属关系。
同时,本实施例还将树型数据内部的隶属关系转化为集合的边界关系,可以通过对树型数据的每一个集合的左右边界点进行编号,以此通过每一个集合的左边界点的编号(左值)和右边界点的编号(右值)来标识各个集合并限定各个集合的范围。上述编号的顺序可以从父集合的左侧向右侧编号,也可以是从父集合的右侧向左侧编号,本实施例的编号顺序为:从父集合的左侧开始,从左往右依次对各集合的边界点顺序编号,如图5所示。
通过对集合的编号,可以更好的实现对树型数据的高效管理,比如对树型数据进行节点查询、新增及删除等操作。
如图6所示,为本实施例以集合嵌套的方式表示的树型数据的表结构示意图。
如图7所示,上述步骤S102中根据树型数据中父节点与子节点之间及各子节点内的隶属关系,以集合方式展示树型数据的步骤包括:
步骤S1021,以位于最外层的父集合展示父节点;
步骤S1022,根据子节点与父节点之间及各子节点内的隶属关系,将子节点以相应的子集合嵌套于父集合中。
本实施例解决了现有技术中对树型数据结构管理的不足,消除了树型数据层次的限制,使树型数据的管理更高效,展示更直观,尤其适合海量树型数据管理。如:家族谱、基因谱及BOM物料清单等应用场景。
如图8所示,本发明另一实施例提出一种树型数据处理方法,在上述实施例的基础上,在上述步骤S102之后还包括:
步骤S103,对集合内的树型数据进行节点查询、节点新增和/或节点删除处理。
其中,对集合内的树型数据进行节点查询处理的实施方式如下:
本实施例可以实现对树型数据的整棵树进行查询,还可以实现对所有叶子节点、单一路径、节点深度以及任意节点的直接子节点进行查询。上述叶子节点为最小集合展示的子节点。
对于树型数据的整棵树的查询,可以通过自连接把父节点连接到子节点上来查询整棵树,因为子节点的左值总是在其父节点的左值和右值之间。
上述对整棵树的查询方法对于层次较深的树型数据都可以得到很好的适用,而不像邻接表结构表示法无法实现对深层次数据的查询。
对于所有叶子节点的查询,使用本实施例嵌套集合的方法比邻接表结构的查询方法简单很多。因为通过集合嵌套方式展示的叶子节点的左、右值是连续的,若需要查询出叶子节点的位置,只要查找满足rit=lft+1的节点:
上述式中rit指右边界点的编号值,lft指左边界点的编号值。
对于节点单一路径的查询,在本实施例新的树型数据结构中,可以不用多个自连接即可以查询出相应节点的单一路径。
为了更好的标识出节点在树中所处的层次,可以对节点深度进行查询,为了获取节点的深度时,可以在先前整棵树的查询语句上增加COUNT函数和GROUP BY子句来实现。
对于节点的直接子节点的查询,可以在上述查询语句上添加HAVING子句来实现。
本实施例对集合内的树型数据进行节点新增处理的实施方式如下:
若需要在树型数据的结构中新增节点,对于非叶子节点下新增节点的情形,首先需要查找当前非叶子节点,将当前非叶子节点所在的子集合的右值加2,然后在当前非叶子节点所在的子集合中插入新增节点的子集合,并依次更新当前非叶子节点右侧各子集合的左、右边界点的编号,即左、右值。
以图5所示的树型数据为例,假设新增节点的当前节点是“子节点2”,它的左值、右值分别是:4,9,新节点是“子节点5”,则“子节点2”的右值变为9+2=11,新插入的子集合“子节点5”的左、右值分别为9、10;同时依次将子集合“子节点2”右边的各个集合的左、右值进行顺序更新,即将“子节点3”、“子节点4”的左、右值及“父节点”的右值分别加2,依次更新为12、13;14、15;16。
对于叶子节点下新增节点的情形,首先需要查找当前叶子节点,将当前叶子节点所在的子集合的右边界点的编号加2,在当前叶子节点所在的子集合内插入新增节点的子集合;并依次更新当前叶子节点右侧各集合的左、右边界点的编号,即左、右值。
以图5所示的树型数据为例,假设需要在“子节点21”下增加新节点“子节点5”,“子节点21”的左、右值分别为5、6,则将“子节点21”的右值加2,变为8,然后,将新增的“子节点5”所在的子集合插入“子节点21”所在的子集合内,新插入的子集合“子节点5”的左、右值分别为6、7;同时,依次将“子节点21”所在的子集合的右侧各集合的左、右值进行顺序更新,即将“子节点22”的左右值、“子节点2”的右值、“子节点3”、“子节点4”的左、右值及“父节点”的右值分别加2,依次更新为9、10;11;12、13;14、15;16。
本实施例对集合内的树型数据进行节点删除处理的实施方式如下:
当需要删除子节点时,首先查找待删除的当前子节点;在删除当前子节点的同时,需要将该当前子节点右边所有节点的左、右值和该父节点的右值都会减去该删除的子节点的宽度值。
需要说明的是,上述对节点的新增及删除处理可以结合实施,如图5所示,若需要删除子节点2而保留该子节点2下的子节点21和子节点22,则需要将子节点21和子节点22新增到父集合中,然后将子节点2及其子集合进行删除处理。
本实施例解决了现有技术中对树型数据结构管理的不足,使树型数据的管理更高效,查询性能更高,同时消除了树型数据层次的限制,尤其适合海量树型数据管理。如:家族谱、基因谱及BOM物料清单等应用场景。
如图9所示,本发明一实施例提出一种树型数据处理装置,包括:获取模块901及展示模块902,其中:
获取模块901,用于获取树型数据的父节点和子节点;
展示模块902,用户根据树型数据中父节点与子节点之间及各子节点内的隶属关系,以集合方式展示树型数据;并从最外层集合的边界的一侧开始,依次对各集合的边界点编号,每个集合的边界两侧的编号用于限定该集合范围。
如上所述,树型数据具有父和子的关系,其包括父节点和若干子节点,其中,子节点包括直属父节点的子节点以及隶属父节点的子节点下的子节点,以此类推。通过获取模块901获取树型数据的父节点和子节点。
如图4所示,为以树状结构表示的某一树型数据,其中,“父节点”为父节点,“子节点1”、“子节点2”、“子节点3”、“子节点4”为父节点的直属子节点,作为子节点的“子节点2”还包括有两个子节点“子节点21”、“子节点22”。
本实施例不以现有技术中的点和线的树状结构的思路来表示树型数据的结构,而是通过展示模块902以集合嵌套的方式来体现树型数据内的隶属关系,树型数据的父节点为父集合,子节点为父集合内的子集合。
如图5所示,通过集合嵌套方式体现的树型数据中,“父节点”为父集合,“子节点1”、“子节点2”、“子节点3”、“子节点4”为父集合的直属子集合,作为子集合的“子节点2”还包括有两个并列的子集合“子节点21”和“子节点22”。以此类推,整个树型数据则成为一个嵌套的集合体。
通过集合的方式,可以清晰的展示树型数据之间的层次隶属关系。而且通过可实现树型数据以集合的图示方式进行外部展示,使用户更直观的了解树型数据的内部隶属关系。
同时,本实施例还将树型数据内部的隶属关系转化为集合的边界关系,可以通过对树型数据的每一个集合的左右边界点进行编号,以此通过每一个集合的左边界点的编号(左值)和右边界点的编号(右值)来标识各个集合并限定各个集合的范围。上述编号的顺序可以从父集合的左侧向右侧编号,也可以是从父集合的右侧向左侧编号,本实施例的编号顺序为:从父集合的左侧开始,从左往右依次对各集合的边界点顺序编号,如图5所示。
通过对集合的编号,可以更好的实现对树型数据的高效管理,比如对树型数据进行节点查询、新增及删除等操作。
如图6所示,为本实施例以集合嵌套的方式表示的树型数据的表结构示意图。
具体地,如图10所示,展示模块902包括:父节点展示单元9021、子节点展示单元9022及编号单元9023,其中:
父节点展示单元9021,用于以位于最外层的父集合展示所述父节点;
子节点展示单元9022,用于根据子节点与所述父节点之间及各子节点内的隶属关系将子节点以相应的子集合于父集合中;
编号单元9023,用于从父集合的边界的一侧开始,依次对各集合的边界点编号,每个集合的边界两侧的编号用于限定该集合的范围。
如图11所示,本发明另一实施例还提出一种树型数据处理装置,在上述实施例的基础上还包括:
节点处理模块903,用于对集合内的树型数据进行节点查询、节点新增和/或节点删除处理。
在本实施例中,节点处理模块903对集合内的树型数据进行节点查询处理,可以实现对树型数据的整棵树进行查询,还可以实现对所有叶子节点、单一路径、节点深度以及任意节点的直接子节点进行查询。上述叶子节点为最小集合展示的子节点。
对于树型数据的整棵树的查询,可以通过自连接把父节点连接到子节点上来查询整棵树,因为子节点的左值总是在其父节点的左值和右值之间。
上述对整棵树的查询方法对于层次较深的树型数据都可以得到很好的适用,而不像邻接表结构表示法无法实现对深层次数据的查询。
对于所有叶子节点的查询,使用本实施例嵌套集合的方法比邻接表结构的查询方法简单很多。因为通过集合嵌套方式展示的叶子节点的左、右值是连续的,若需要查询出叶子节点的位置,只要查找满足rit=lft+1的节点:
上述式中rit指右边界点的编号值,lft指左边界点的编号值。
对于节点单一路径的查询,在本实施例新的树型数据结构中,可以不用多个自连接即可以查询出相应节点的单一路径。
为了更好的标识出节点在树中所处的层次,可以对节点深度进行查询,为了获取节点的深度时,可以在先前整棵树的查询语句上增加COUNT函数和GROUP BY子句来实现。
对于节点的直接子节点的查询,可以在上述查询语句上添加HAVING子句来实现。
此外,根据需要,节点处理模块903还可实现在树型数据的结构中新增节点,具体处理方式如下:
对于非叶子节点下新增节点的情形,首先查找当前非叶子节点,将当前非叶子节点所在的子集合的右值加2,然后在当前非叶子节点所在的子集合中插入新增节点的子集合,并依次更新当前非叶子节点右侧各子集合的左、右边界点的编号,即左、右值。
以图5所示的树型数据为例,假设新增节点的当前节点是“子节点2”,它的左值、右值分别是:4,9,新节点是“子节点5”,则“子节点2”的右值变为9+2=11,新插入的子集合“子节点5”的左、右值分别为9、10;同时依次将子集合“子节点2”右边的各个集合的左、右值进行顺序更新,即将“子节点3”、“子节点4”的左、右值及“父节点”的右值分别加2,依次更新为12、13;14、15;16。
对于叶子节点下新增节点的情形,首先查找当前叶子节点,将当前叶子节点所在的子集合的右边界点的编号加2,在当前叶子节点所在的子集合内插入新增节点的子集合;并依次更新当前叶子节点右侧各集合的左、右边界点的编号,即左、右值。
以图5所示的树型数据为例,假设需要在“子节点21”下增加新节点“子节点5”,“子节点21”的左、右值分别为5、6,则将“子节点21”的右值加2,变为8,然后,将新增的“子节点5”所在的子集合插入“子节点21”所在的子集合内,新插入的子集合“子节点5”的左、右值分别为6、7;同时,依次将“子节点21”所在的子集合的右侧各集合的左、右值进行顺序更新,即将“子节点22”的左右值、“子节点2”的右值、“子节点3”、“子节点4”的左、右值及“父节点”的右值分别加2,依次更新为9、10;11;12、13;14、15;16。
此外,节点处理模块903还可实现对子节点的删除,当需要删除子节点时,首先查找待删除的当前子节点,在删除当前子节点的同时,需要将该当前子节点右边所有节点的左、右值和该父节点的右值都会减去该删除的子节点的宽度值。
需要说明的是,上述对节点的新增及删除处理可以结合实施,如图5所示,若需要删除子节点2而保留该子节点2下的子节点21和子节点22,则需要将子节点21和子节点22新增到父集合中,然后将子节点2及其子集合进行删除处理。
本实施例树型数据处理方法及装置解决了现有技术中对树型数据结构管理的不足,使树型数据的管理更高效,查询性能更高,同时消除了树型数据层次的限制,尤其适合海量树型数据管理。如:家族谱、基因谱及BOM物料清单等应用场景。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种树型数据处理方法,其特征在于,包括以下步骤:
获取树型数据的父节点和子节点;
根据所述树型数据中父节点与子节点之间及各子节点内的隶属关系,以集合方式展示所述树型数据;并从最外层集合的边界的一侧开始,依次对各集合的边界点编号,每个集合的边界两侧的编号用于限定该集合的范围。
2.根据权利要求1所述的方法,其特征在于,所述根据树型数据中父节点与子节点之间及各子节点内的隶属关系,以集合方式展示所述树型数据的步骤包括:
以位于最外层的父集合展示所述父节点;
根据所述子节点与所述父节点之间及各子节点内的隶属关系,将所述子节点以相应的子集合嵌套于所述父集合中。
3.根据权利要求1所述的方法,其特征在于,还包括:对集合内的树型数据进行节点查询、节点新增和/或节点删除处理。
4.根据权利要求3所述的方法,其特征在于,所述对集合内的树型数据进行节点查询处理包括:
对整个树型数据结构、所有叶子节点、单一路径、节点深度和/或任意节点的直接子节点的查询;所述叶子节点为最小集合展示的子节点。
5.根据权利要求3所述的方法,其特征在于,所述对集合内的树型数据进行节点添加处理包括:
在非叶子节点下新增节点时,查找当前非叶子节点;将所述当前非叶子节点所在的子集合的右边界点的编号加2,在当前非叶子节点所在的子集合中插入新增节点的子集合;依次更新所述当前非叶子节点右侧各子集合的左、右边界点的编号;
在叶子节点下新增节点时,查找当前叶子节点;将所述当前叶子节点所在的子集合的右边界点的编号加2,在当前叶子节点所在的子集合内插入新增节点的子集合;依次更新所述当前叶子节点右侧各子集合的左、右边界点的编号。
6.根据权利要求3、4或5所述的方法,其特征在于,所述对集合内的树型数据进行节点删除处理包括:
查找待删除的当前子节点;
删除当前子节点,并将该当前子节点右边所有节点所在子集合的左、右边界点的编号及父集合右边界点的编号均减去该当前子节点的宽度值。
7.一种树型数据处理装置,其特征在于,包括:
获取模块,用于获取树型数据的父节点和子节点;
展示模块,用户根据所述树型数据中父节点与子节点之间及各子节点内的隶属关系,以集合方式展示所述树型数据;并从最外层集合的边界的一侧开始,依次对各集合的边界点编号,每个集合的边界两侧的编号用于限定该集合的范围。
8.根据权利要求7所述的装置,其特征在于,所述展示模块包括:
父节点展示单元,用于以位于最外层的父集合展示所述父节点;
子节点展示单元,用于根据所述子节点与所述父节点之间及各子节点内的隶属关系,将所述子节点以相应的子集合嵌套于所述父集合中;
编号单元,用于从父集合的边界的一侧开始,依次对各集合的边界点编号,每个集合的边界两侧的编号用于限定该集合的范围。
9.根据权利要求7或8所述的装置,其特征在于,还包括:
节点处理模块,用于对集合内的树型数据进行节点查询、节点新增和/或节点删除处理。
10.根据权利要求9所述的装置,其特征在于,所述节点处理模还用于对整个树型数据结构、所有叶子节点、单一路径、节点深度和/或任意节点的直接子节点的查询;在非叶子节点下新增节点时,查找当前非叶子节点,将当前非叶子节点所在的子集合的右边界点的编号加2,在当前非叶子节点所在的子集合中插入新增节点的子集合;依次更新所述当前非叶子节点右侧各子集合的左、右边界点的编号;在叶子节点下新增节点时,查找当前叶子节点,将所述当前叶子节点所在的子集合的右边界点的编号加2,在当前叶子节点所在的子集合内插入新增节点的子集合;依次更新所述当前叶子节点右侧各子集合的左、右边界点的编号;以及查找待删除的当前子节点,删除当前子节点,并将该当前子节点右边所有节点所在子集合的左、右边界点的编号及父集合右边界点的编号均减去该当前子节点的宽度值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110296438.5A CN102819536B (zh) | 2011-09-27 | 2011-09-27 | 树型数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110296438.5A CN102819536B (zh) | 2011-09-27 | 2011-09-27 | 树型数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102819536A true CN102819536A (zh) | 2012-12-12 |
CN102819536B CN102819536B (zh) | 2015-08-19 |
Family
ID=47303649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110296438.5A Active CN102819536B (zh) | 2011-09-27 | 2011-09-27 | 树型数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102819536B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408067A (zh) * | 2014-10-29 | 2015-03-11 | 中国建设银行股份有限公司 | 一种多树结构的数据库设计方法及装置 |
CN104598517A (zh) * | 2014-12-09 | 2015-05-06 | 北京网梯科技发展有限公司 | 基于普通数据库的树型结构表的存储与查询技术 |
CN104714947A (zh) * | 2013-12-11 | 2015-06-17 | 深圳市腾讯计算机系统有限公司 | 预定类型号码识别方法及装置 |
CN104809196A (zh) * | 2015-04-24 | 2015-07-29 | 福建诚成城软件科技有限公司 | 一种中华族谱管理方法与系统 |
CN104809190A (zh) * | 2015-04-21 | 2015-07-29 | 浙江大学 | 一种树形结构数据的数据库存取方法 |
CN105207793A (zh) * | 2014-05-30 | 2015-12-30 | 亿阳信通股份有限公司 | 一种树状拓扑结构中节点信息的获取方法和系统 |
CN105488088A (zh) * | 2014-12-31 | 2016-04-13 | 哈尔滨安天科技股份有限公司 | 基于树形结构的二维网络角度分配布局方法 |
CN105528397A (zh) * | 2015-12-01 | 2016-04-27 | 车智互联(北京)科技有限公司 | 一种数据存取方法、系统及计算设备 |
CN105550850A (zh) * | 2016-01-29 | 2016-05-04 | 广东石油化工学院 | 一种ebom到cbom的映射方法 |
CN105573836A (zh) * | 2016-02-23 | 2016-05-11 | 中国农业银行股份有限公司 | 数据处理方法及装置 |
CN105653624A (zh) * | 2015-12-25 | 2016-06-08 | 精硕世纪科技(北京)有限公司 | 数据服务器及数据储存方法 |
WO2016091174A1 (zh) * | 2014-12-09 | 2016-06-16 | 华为技术有限公司 | 图数据的搜索方法和装置 |
CN107464083A (zh) * | 2017-08-24 | 2017-12-12 | 北京车和家信息技术有限责任公司 | 一种物料清单的生成方法、装置及设备 |
CN110515977A (zh) * | 2019-08-26 | 2019-11-29 | 深圳追一科技有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN111078689A (zh) * | 2019-11-20 | 2020-04-28 | 深圳希施玛数据科技有限公司 | 一种非连续型预排序遍历树算法的数据处理方法及系统 |
CN111339193A (zh) * | 2020-02-21 | 2020-06-26 | 腾讯云计算(北京)有限责任公司 | 类别的编码方法及装置 |
CN112256729A (zh) * | 2020-11-03 | 2021-01-22 | 北京神州数字科技有限公司 | 一种基于左右值无限分类实现算法的数据查询方法 |
CN112463450A (zh) * | 2020-11-27 | 2021-03-09 | 北京浪潮数据技术有限公司 | 一种增量备份管理方法、系统、电子设备及存储介质 |
CN113282456A (zh) * | 2021-05-24 | 2021-08-20 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
CN113380356A (zh) * | 2021-05-10 | 2021-09-10 | 广州零端科技有限公司 | 分支链式溯源的医疗检查数据记录方法、查询方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1992674A (zh) * | 2005-12-31 | 2007-07-04 | 华为技术有限公司 | 一种基于多比特分割的多维分组分类方法 |
JP2008112240A (ja) * | 2006-10-30 | 2008-05-15 | S Grants Co Ltd | ビット列検索方法及びプログラム |
CN101196921A (zh) * | 2007-12-24 | 2008-06-11 | 北京大学 | 用于近似查询的长序列数据降维方法 |
CN101609463A (zh) * | 2009-08-04 | 2009-12-23 | 北京环太中科软件股份有限公司 | 建立文单之间数据转换关系的方法及文单之间数据迁移的方法 |
-
2011
- 2011-09-27 CN CN201110296438.5A patent/CN102819536B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1992674A (zh) * | 2005-12-31 | 2007-07-04 | 华为技术有限公司 | 一种基于多比特分割的多维分组分类方法 |
JP2008112240A (ja) * | 2006-10-30 | 2008-05-15 | S Grants Co Ltd | ビット列検索方法及びプログラム |
CN101196921A (zh) * | 2007-12-24 | 2008-06-11 | 北京大学 | 用于近似查询的长序列数据降维方法 |
CN101609463A (zh) * | 2009-08-04 | 2009-12-23 | 北京环太中科软件股份有限公司 | 建立文单之间数据转换关系的方法及文单之间数据迁移的方法 |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714947A (zh) * | 2013-12-11 | 2015-06-17 | 深圳市腾讯计算机系统有限公司 | 预定类型号码识别方法及装置 |
CN105207793A (zh) * | 2014-05-30 | 2015-12-30 | 亿阳信通股份有限公司 | 一种树状拓扑结构中节点信息的获取方法和系统 |
CN105207793B (zh) * | 2014-05-30 | 2018-10-26 | 广州亿阳信息技术有限公司 | 一种树状拓扑结构中节点信息的获取方法和系统 |
CN104408067A (zh) * | 2014-10-29 | 2015-03-11 | 中国建设银行股份有限公司 | 一种多树结构的数据库设计方法及装置 |
CN104408067B (zh) * | 2014-10-29 | 2019-08-13 | 中国建设银行股份有限公司 | 一种多树结构的数据库设计方法及装置 |
WO2016091174A1 (zh) * | 2014-12-09 | 2016-06-16 | 华为技术有限公司 | 图数据的搜索方法和装置 |
CN104598517A (zh) * | 2014-12-09 | 2015-05-06 | 北京网梯科技发展有限公司 | 基于普通数据库的树型结构表的存储与查询技术 |
US9798774B1 (en) | 2014-12-09 | 2017-10-24 | Huawei Technologies Co., Ltd. | Graph data search method and apparatus |
CN105488088A (zh) * | 2014-12-31 | 2016-04-13 | 哈尔滨安天科技股份有限公司 | 基于树形结构的二维网络角度分配布局方法 |
CN104809190A (zh) * | 2015-04-21 | 2015-07-29 | 浙江大学 | 一种树形结构数据的数据库存取方法 |
CN104809196A (zh) * | 2015-04-24 | 2015-07-29 | 福建诚成城软件科技有限公司 | 一种中华族谱管理方法与系统 |
CN105528397A (zh) * | 2015-12-01 | 2016-04-27 | 车智互联(北京)科技有限公司 | 一种数据存取方法、系统及计算设备 |
CN105653624B (zh) * | 2015-12-25 | 2019-02-26 | 精硕科技(北京)股份有限公司 | 数据服务器及数据储存方法 |
CN105653624A (zh) * | 2015-12-25 | 2016-06-08 | 精硕世纪科技(北京)有限公司 | 数据服务器及数据储存方法 |
CN105550850A (zh) * | 2016-01-29 | 2016-05-04 | 广东石油化工学院 | 一种ebom到cbom的映射方法 |
CN105573836A (zh) * | 2016-02-23 | 2016-05-11 | 中国农业银行股份有限公司 | 数据处理方法及装置 |
CN105573836B (zh) * | 2016-02-23 | 2018-12-28 | 中国农业银行股份有限公司 | 数据处理方法及装置 |
CN107464083A (zh) * | 2017-08-24 | 2017-12-12 | 北京车和家信息技术有限责任公司 | 一种物料清单的生成方法、装置及设备 |
CN110515977A (zh) * | 2019-08-26 | 2019-11-29 | 深圳追一科技有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN111078689B (zh) * | 2019-11-20 | 2023-05-26 | 深圳希施玛数据科技有限公司 | 一种非连续型预排序遍历树算法的数据处理方法及系统 |
CN111078689A (zh) * | 2019-11-20 | 2020-04-28 | 深圳希施玛数据科技有限公司 | 一种非连续型预排序遍历树算法的数据处理方法及系统 |
CN111339193A (zh) * | 2020-02-21 | 2020-06-26 | 腾讯云计算(北京)有限责任公司 | 类别的编码方法及装置 |
CN112256729A (zh) * | 2020-11-03 | 2021-01-22 | 北京神州数字科技有限公司 | 一种基于左右值无限分类实现算法的数据查询方法 |
CN112463450A (zh) * | 2020-11-27 | 2021-03-09 | 北京浪潮数据技术有限公司 | 一种增量备份管理方法、系统、电子设备及存储介质 |
CN112463450B (zh) * | 2020-11-27 | 2023-12-22 | 北京浪潮数据技术有限公司 | 一种增量备份管理方法、系统、电子设备及存储介质 |
CN113380356A (zh) * | 2021-05-10 | 2021-09-10 | 广州零端科技有限公司 | 分支链式溯源的医疗检查数据记录方法、查询方法及装置 |
CN113380356B (zh) * | 2021-05-10 | 2024-04-16 | 广州零端科技有限公司 | 分支链式溯源的医疗检查数据记录方法、查询方法及装置 |
CN113282456A (zh) * | 2021-05-24 | 2021-08-20 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
CN113282456B (zh) * | 2021-05-24 | 2023-09-22 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102819536B (zh) | 2015-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102819536B (zh) | 树型数据处理方法及装置 | |
CN105630803B (zh) | 文档型数据库建立索引的方法和装置 | |
CN104252528B (zh) | 基于标识符空间映射的大数据二级索引构建方法 | |
CN104657418B (zh) | 一种基于隶属度传播的复杂网络模糊社团挖掘方法 | |
CN104331491B (zh) | 一种组织机构的展示方法及装置 | |
CN110781184B (zh) | 数据表的构建方法、装置、设备及存储介质 | |
CN110135890A (zh) | 基于知识关系挖掘的产品数据推送方法及相关设备 | |
CN103020267B (zh) | 基于三角簇多标签传播的复杂网络社区结构挖掘方法 | |
CN102662974A (zh) | 一种基于邻接节点树的网络图索引方法 | |
CN102841891B (zh) | 一种树状结构节点的排序方法、装置及查询系统 | |
CN105515997B (zh) | 基于bf_tcam实现零范围扩张的高效范围匹配方法 | |
CN105976048A (zh) | 一种基于改进人工蜂群算法的输电网扩展规划方法 | |
CN103617216B (zh) | 一种通过哈希值表实现数据快速检索的方法和系统 | |
CN105740964A (zh) | 一种城市路网数据组织与最短路径快速计算方法 | |
CN103729427B (zh) | 一种基于自定义多级流表增量更新的流表转换方法 | |
CN103064908A (zh) | 一种通过内存快速去重名单的方法 | |
CN105045806A (zh) | 一种面向分位数查询的概要数据动态分裂与维护方法 | |
WO2014013327A1 (en) | Lattice based traffic measurement | |
CN102508866B (zh) | 基于数字寻址的指挥关系树结构化存储与快速处理方法 | |
CN104408128B (zh) | 一种基于b+树异步更新索引的读优化方法 | |
CN105574076B (zh) | 一种基于Bloom Filter的键值对存储结构及方法 | |
CN106527912B (zh) | 一种基于Voronoi树图的信息检索可视化系统及方法 | |
CN104008205A (zh) | 一种内容路由的查询方法及系统 | |
CN103164487B (zh) | 一种基于密度与几何信息的数据聚类方法 | |
CN106095952A (zh) | 基于键值云存储的时空范围内海量过车记录快速查询方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210928 Address after: 102400 No. 18 Jianshe Road, Kaixuan street, Liangxiang, Fangshan District, Beijing - c1065 Patentee after: Beijing Kingdee Yunji Technology Co.,Ltd. Address before: 518057 High-tech Industrial Village W1-B4, Shennan Avenue, Nanshan District, Shenzhen City, Guangdong Province Patentee before: Kingdee software (China) Co.,Ltd. |