CN102508866A - 基于数字寻址的指挥关系树结构化存储与快速处理方法 - Google Patents
基于数字寻址的指挥关系树结构化存储与快速处理方法 Download PDFInfo
- Publication number
- CN102508866A CN102508866A CN2011103061677A CN201110306167A CN102508866A CN 102508866 A CN102508866 A CN 102508866A CN 2011103061677 A CN2011103061677 A CN 2011103061677A CN 201110306167 A CN201110306167 A CN 201110306167A CN 102508866 A CN102508866 A CN 102508866A
- Authority
- CN
- China
- Prior art keywords
- node
- numeric string
- length
- tree
- string
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于数字寻址的指挥关系树结构化存储与快速处理方法,包括以下步骤:步骤1,用包含节点位置信息的数字串来标示指挥关系树上各节点;步骤2,将每个节点的节点标识、数字串、步长和节点信息作为一条记录存储入数据库,用一张二维表存储一个树的结构信息;步骤3,对树的结构信息进行管理,包括读取树的结构信息,增加节点、删除节点。本发明不仅能够实现树型结构的快速存储和读取,同时根据标识了节点位置的数字串可以避免效率低下的遍历搜索,而且数字串的进制和步长可以灵活配置,提高了处理效率、灵活性和稳定性。
Description
技术领域
本发明涉及一种数据存储方法,特别是一种面向指挥领域的树型结构的基于数字寻址的指挥关系树结构化存储与快速处理方法。
背景技术
在指挥和管理领域,人员组织或物资目标等经常以树型结构来表现,并往往呈现出层次多、规模大,底层节点增删频繁等特点。同时,系统对树结构读取和节点操作的效率要求比较高,这就需要一种高效简便的数据持久化和处理方法。目前常用的方法是用一张二维表来存储树型结构信息,并在其基础上进行相关操作。
基于二维表的树型结构存储,中国专利CN200310113660.2公开了一种用二维表实现的树的存储、访问的方法。该方法将一个树型结构转化为二叉树结构,通过在二维表中记录每个节点的父节点,左右子节点来保存树的结构信息,在该专利所述领域中具有很好的效率。该方法应用于普遍领域时,会有这样几个缺点:
(1)需要将普通的树结构转化为二叉树进行存储,增加了一道处理工序;
(2)二维表中保存的是二叉树的结构信息,无法反映树的原始结构信息,如果需要从二维表中读取原始树结构,则还需要一次转化还原计算;
(3)每次增加、删除叶子节点时,都会引起查找操作,同时还需要修改多条记录,增加了系统消耗。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于数字寻址的指挥关系树结构化存储与快速处理方法。
为了解决上述技术问题,本发明公开了一种基于数字寻址的指挥关系树结构化存储与快速处理方法,包括以下步骤:
步骤1,用包含节点位置信息的数字串来标示指挥关系树上各节点,所述节点包括一个根节点和一组子节点,一个树的每个节点的数字串唯一,一个树的所有节点的数字串组成的集合是有序集(集合里的任意两个数字串A和B,满足A>B或B>A);根节点的数字串等于根节点的位置数,子节点的数字串由其父节点的数字串和节点本身的位置数两部分组成;节点的位置数表示其在同层节点中位置的一串数字,其长度称为该节点的步长;
步骤2,将每个节点的节点标识、数字串、步长和节点信息(包括节点名称和节点附加属性)作为一条记录存储入数据库,用一张二维表存储一个树的结构信息;
步骤3,对树的结构信息进行管理,包括读取树的结构信息,增加节点、删除节点。
本发明步骤1包括:
步骤11,确定数字串采用的进制k、根节点的数字串、根节点的步长n,根节点的步长为根节点的数字串长度,其中k和n为任意自然数;
步骤12,根据当前层节点数量级,预设下层节点的数量级为进制k的m次方,则下层节点的步长为m+1,m为任意自然数;
步骤13,取出当前要计算的节点,计算其位置数;计算方法是用待计算节点在同层节点中的位置i乘以进制数k;数字串的大小表示兄弟节点之间的先后顺序,越小的表示位置越前。
步骤14,如果得到的位置数长度小于本层节点的步长,则在位置数左边补0直到位置数长度等于步长;如果位置数的长度超过步长,则将步长加1后返回步骤12;
步骤15,将得到的位置数加在当前节点的父节点的数字串后,得到当前节点的数字串;
步骤16,判断本层节点是否都已得到其数字串,如果是则进行步骤17,如果否则返回步骤13;
步骤17,判断是否已经为树的最底层,如果是则结束,否则返回步骤12。
本发明步骤2中,所述存储一个树的结构信息的二维表的字段描述如下:
字段名称 | 类型 | 说明 |
NODEID | LPSTR | 节点标识,为英文和数字组成的字符串 |
NODENAME | LPSTR | 节点名称,为中文或者英文 |
POSSIGNAL | LPSTR | 节点的数字串 |
UNITSIZE | WORD | 节点步长 |
根据实际需要,可以增加字段来描述树的节点携带的相关信息,也可以增加一个索引字段指向专门的节点数据信息表。
本发明步骤3中从存储表中读取树的结构信息包括:
步骤311:将数据库中数字串长度最小的一条记录,作为树的根节点;
步骤312:将剩余记录中数字串长度最小的节点,其数字串去掉后面节点步长的数字,即为该节点的父节点的数字串,将每个叶子节点找到其对应的父节点插入树中,兄弟节点之间根据其数字串大小排序;
步骤313:重复步骤312,直到所有记录都对应为树的叶子节点。
本发明步骤3中增加节点包括:
步骤321,确定要增加节点的父节点,得到父节点的数字串;
步骤322,如果待增加节点有其他同层节点,则进入步骤325,否则进入步骤323;
步骤323,为待增加节点指定一个步长,步长不小于3;
步骤324,将进制k转为长度为步长的位置数,加到父节点的数字串后面,即为新节点的数字串,转入步骤329;
步骤325,取同层节点的步长为该节点的步长;
步骤326,如果待增加节点作为兄弟节点中最后一个加入树中,则进入步骤327,否则进入步骤328;
步骤327,将该节点待插入的位置在兄弟节点中的序号乘以进制k,得到的结果转为长度等于步长的数字,即为该节点的位置数,加到父节点的数字串后面,即为新节 点的数字串,进入步骤329;
步骤328,该节点待插入的位置的左边一个节点为该节点的左兄弟节点,该节点待插入的位置的右边一个节点为该节点的右兄弟节点。取该节点左右兄弟节点的数字串的中间值或最接近中间值的整数,即为待增加节点的数字串。如果左右兄弟节点的数字串的差的绝对值小于1,则减小左边兄弟节点的数字串,如果左边无法减小,则增加右兄弟节点的数字串,然后再重新计算待增加节点的数字串;
步骤329,将待增加节点的节点信息和数字串等存入二维表中,增加节点完成。
本发明步骤3中删除节点包括:
步骤331,取得要删除节点的数字串PosVal和数字串的长度n;
步骤332,从树型结构存储表中查询所有数字串前n位等于PosVal的节点,所述节点是待删除节点及其子孙节点;
步骤333,删除所有查询到的节点。
本发明所述父节点和子节点之间具有以下特点:
(1)父节点数字串是子节点数字串的左子串;
(2)对任一节点N,若其数字串为PosVal,所有数字串是PosVal的左子串的节点,按数字串长度升序排列,组成了根节点到节点N的路径。
有益效果:本发明与现有技术相比,其显著优点为:(1)结构表现直观,存储和读取树结构的速度快。(2)根据节点的数字串可以直接定位到该节点在树上的对应位置,避免了效率低下的遍历搜索。(3)增删节点操作效率高,代价小。(4)根据树的规模可以灵活配置进制和步长,可以整棵树使用相同的单位步长,也可以各层之间使用相同的单位步长,从而控制树结构存取的复杂度和效率。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1是树型结构存入关系表的流程图。
图2是根据关系表生成树结构的流程图。
图3是在关系表中增加节点数据的流程图。
图4是在关系表中删除节点数据的流程图。
图5是一个树型组织结构的实例。
图6是图5中的树型结构对应的存储表。
具体实施方式
本发明公开了一种基于数字寻址的指挥关系树结构化存储与快速处理方法,包括以下步骤:
步骤1,用包含节点位置信息的数字串来标示指挥关系树上各节点,所述节点包括一个根节点和一组子节点,一个树的每个节点的数字串唯一,一个树的所有节点的数字串组成的集合是有序集;根节点的数字串等于根节点的位置数,子节点的数字串由其父节点的数字串和节点本身的位置数两部分组成;节点的位置数表示其在同层节点 中位置的一串数字,其长度称为该节点的步长;
步骤2,将每个节点的节点标识、数字串、步长和节点信息作为一条记录存储入数据库,用一张二维表存储一个树的结构信息;
步骤3,对树的结构信息进行管理,包括读取树的结构信息,增加节点、删除节点。
步骤1包括:
步骤11,确定数字串采用的进制k、根节点的数字串、根节点的步长n,根节点的步长为根节点的数字串长度,其中k和n为任意自然数;
步骤12,根据当前层节点数量级,预设下层节点的数量级为进制k的m次方,则下层节点的步长为m+1,m为任意自然数;
步骤13,取出当前要计算的节点,计算其位置数;计算方法是用待计算节点在同层节点中的位置i乘以进制数k;
步骤14,如果得到的位置数长度小于本层节点的步长,则在位置数左边补0直到位置数长度等于步长;如果位置数的长度超过步长,则将步长加1后返回步骤12;
步骤15,将得到的位置数加在当前节点的父节点的数字串后,得到当前节点的数字串;
步骤16,判断本层节点是否都已得到其数字串,如果是则进行步骤17,如果否则返回步骤13;
步骤17,判断是否已经为树的最底层,如果是则结束,否则返回步骤12。
步骤2中,所述存储一个树的结构信息的二维表的字段描述如下:
字段名称 | 类型 | 说明 |
NODEID | LPSTR | 节点标识,为英文和数字组成的字符串 |
NODENAME | LPSTR | 节点名称,为中文或者英文 |
POSSIGNAL | LPSTR | 节点的数字串 |
UNITSIZE | WORD | 节点步长 |
步骤3中从存储表中读取树的结构信息包括:
步骤311:将数据库中数字串长度最小的一条记录,作为树的根节点;
步骤312:将剩余记录中数字串长度最小的节点,其数字串去掉后面节点步长的数字,即为该节点的父节点的数字串,将每个叶子节点找到其对应的父节点插入树中,兄弟节点之间根据其数字串大小排序;
步骤313:重复步骤312,直到所有记录都对应为树的叶子节点。
步骤3中增加节点包括:
步骤321,确定要增加节点的父节点,得到父节点的数字串;
步骤322,如果待增加节点有其他同层节点,则进入步骤325,否则进入步骤323;
步骤323,为待增加节点指定一个步长,步长不小于3;
步骤324,将进制k转为长度为步长的位置数,加到父节点的数字串后面,即为新 节点的数字串,转入步骤329;
步骤325,取同层节点的步长为该节点的步长;
步骤326,如果待增加节点作为兄弟节点中最后一个加入树中,则进入步骤327,否则进入步骤328;
步骤327,将该节点待插入的位置在兄弟节点中的序号乘以进制k,得到的结果转为长度等于步长的数字,即为该节点的位置数,加到父节点的数字串后面,即为新节点的数字串,进入步骤329;
步骤328,该节点待插入的位置的左边一个节点为该节点的左兄弟节点,该节点待插入的位置的右边一个节点为该节点的右兄弟节点。取该节点左右兄弟节点的数字串的中间值或最接近中间值的整数,即为待增加节点的数字串。如果左右兄弟节点的数字串的差的绝对值小于1,则减小左边兄弟节点的数字串,如果左边无法减小,则增加右兄弟节点的数字串,然后再重新计算待增加节点的数字串;
步骤329,将待增加节点的节点信息和数字串等存入二维表中,增加节点完成。
步骤3中删除节点包括:
步骤331,取得要删除节点的数字串PosVal和数字串的长度n;
步骤332,从树型结构存储表中查询所有数字串前n位等于PosVal的节点,所述节点是待删除节点及其子孙节点;
步骤333,删除所有查询到的节点。
所述父节点和子节点之间具有以下特点:
(1)父节点数字串是子节点数字串的左子串;
(2)对任一节点N,若其数字串为PosVal,所有数字串是PosVal的左子串的节点,按数字串长度升序排列,组成了根节点到节点N的路径。
实施例
结合错误!未找到引用源。,将树型结构存入数据库关系表的具体实施步骤是:
步骤11,根据树的规模,确定数字串采用的进制,继而确定根节点的数字串和步长,并将根节点的数字串步长等存入数据库。
步骤12,将下层节点作为当前层开始处理。根据当前层节点数量级,确定下层节点步长。确定步长的方法为预估的节点数量级加1或者更多。目的是确保能对所有节点进行编号并保留一定的冗余空间以备增加节点。
步骤13,从当前层节点中取出要计算的节点。
步骤14,首先计算节点的位置数,具体计算方法是用待计算节点在兄弟节点中的序号乘以进制数。
步骤15,判断位置数的长度是否等于节点步长。如果位置数的长度超过了步长,则返回步骤12重新计算步长;等于步长,则进入步骤16;小于步长,则进入步骤17。
步骤16,将得到的位置数加在父节点的数字串后,得到新的字符串即为该节点的数字串,跳至步骤18。
步骤17,将得到的位置数转化为长度为节点步长的字符串,长度不足在数字左边 补0,进行步骤18。
步骤18,将节点信息和得到的数字串存入数据库的表中。
步骤19,本层节点是否都已计算完毕,否则返回步骤13。
步骤20,是否已经为树的最底层,是则计算完毕,否则返回步骤12。
结合错误!未找到引用源。,从数据库关系表中取出树型结构的具体实施步骤是:
步骤21,从数据库中查询所有节点,查询结果按数字串从小到大升序排列。
步骤22,取出查询结果中的第一个节点,根据数字串的确定原则,它一定是数字串长度最小的节点,即为树的根节点。
步骤23,判断结果集中所有节点是否都已经取出,如果全部取出则计算结束,否则进入步骤24。
步骤24,取出查询结果中的下一个节点。
步骤25,去掉节点的数字串右边的长度为步长的字符串,得到的子字符串,就是父节点的数字串。
步骤26,根据计算出的数字串在树上找到父节点。
步骤27,将节点作为到父节点的最后一个子节点插入树中,返回步骤23。
结合错误!未找到引用源。,在树型结构上增加节点的具体实施步骤是:
步骤31,确定要增加节点的父节点,得到父节点的数字串。
步骤32,如果待增加节点有其他同层节点,则进入步骤35,否则进入步骤33。
步骤33,为待增加节点指定一个步长,为保证足够的冗余度,步长一般不小于3。
步骤34,待增加节点的数字串即为进制K,转为长度为步长的字符串,就是该节点的位置数,将位置数加到父节点的数字串后面,即为新节点的数字串,进入步骤39。
步骤35,确定要增加节点在兄弟节点中的位置,取同层节点的步长为该节点的步长。
步骤36,如果待增加节点作为兄弟节点中最后一个加入树中,则进入步骤37,否则进入步骤38。
步骤37,该节的位置数为该节点在兄弟节点中的序号乘以进制K,转为长度为步长的字符串,加到父节点的数字串后面,即为新节点的数字串(如果遇到步长不够的情况则调整步长,当然这种情况会很少见),进入步骤39。
步骤38,取该节点右兄弟节点的数字串,与左兄弟数字串的中间值(或最接近中间值的整数)形成的字符串,即为待增加节点的数字串。如果左右兄弟节点的数字串插值小于1,则减小左边兄弟节点数字串,左边无法减小,则增加右边兄弟节点的数字串。然后再取左右兄弟节点的中间值,得到待增加节点的数字串。
步骤39,将待增加节点的节点信息和数字串存入关系表中,节点增加完毕。
增加节点的方法看似复杂,实际上只需要得到父节点的数字串和左右兄弟节点的数字串即可快速算出增加节点的数字串。只在步长的冗余度不足的情况下需要修改其他节点的数字串和步长,而这种情况在步长设置合理的情况下很少发生。
结合错误!未找到引用源。,删除节点的的具体实施步骤是:
步骤41,取得要删除节点的数字串PosVal和数字串的长度n。
步骤42,从树型结构存储表中查询所有数字串前n位等于PosVal的节点,这些节点是待删除节点及其子孙节点。
步骤43,删除所有查询到的节点记录。
实施例
错误!未找到引用源。给出了一个树型结构的实例,错误!未找到引用源。给出了图5中的树型结构对应的数据库的二维表。实例中采用的进制为10进制,第一层第二层的步长为2,第三层第四层的步长为3。
下面以错误!未找到引用源。和错误!未找到引用源。为例,将树型结构存入数据库的流程实例是:
步骤1,根据树的规模,确定数字串采用的进制为10进制,确定根节点的的步长为2,根节点的数字串为10,存储根节点。
步骤2,开始处理第二层的节点,确定节点的步长为2。
步骤3,从当前层节点中取出要计算的节点为“装备管理中心”。
步骤4,“装备管理中心”的位置数为节点在兄弟节点中的序号1乘以进制数10,结果为10。
步骤5,将10加在父节点的数字串10后,得到新的字符串1010即为该节点“装备管理中心”的数字串,存入数据库。
步骤6,取得下一个待计算的节点为“任务调度中心”。
步骤7,“任务调度中心”的位置数为节点在兄弟节点中的序号2乘以进制数10,结果为20。
步骤8,将20加在父节点的数字串10后,得到新的字符串1020即为该节点“任务调度中心”的数字串,存入数据库。
步骤9,计算完第二层所有节点,转入第三层。
步骤10,确定第三层的节点步长为3。
步骤11,确定带计算的节点为“资源管理部”,根据步长和节点位置,其位置数为010,加在父节点的数字串1010后,得到“资源管理部”的数字串为1010010,存入数据库。
步骤12,计算第三层所有节点,转入下一层。
步骤13,将树上所有节点都计算完毕并存入数据库。
以错误!未找到引用源。和错误!未找到引用源。为例,从数据库中取出树型结构的流程实例是:
步骤21,从数据库中查询所有节点,查询结果按数字串从小到大升序排列。
步骤22,取出查询结果中的第一个节点“指挥中心”,根据数字串的确定原则,它一定是数字串长度最小的节点,即为树的根节点。
步骤24,取出查询结果中的下一个节点“装备管理中心”。
步骤25,去掉节点的数字串1010右边的长度为步长2的字符串,得到的子字符串 10,就是父节点的数字串。
步骤26,根据计算出的数字串10在树上找到父节点。
步骤27,将节点作为到父节点的最后一个子节点插入树中。
步骤24,取出查询结果中的下一个节点“任务调度中心”。
步骤25,去掉节点的数字串1020右边的长度为步长2的字符串,得到的子字符串10,就是父节点的数字串。
步骤26,根据计算出的数字串10在树上找到父节点。
步骤27,将节点作为到父节点的最后一个子节点插入树中。
步骤28,依次取出查询结果中的所有节点插入树中。
以错误!未找到引用源。和错误!未找到引用源。为例,如果要增加节点“事务104室”,其流程实例是:
步骤31,确定要增加节点的父节点为“事务一部”,得到父节点的数字串为1050010。
步骤32,取同层节点的步长3为该节点的步长。
步骤33,待增加节点作为兄弟节点中最后一个加入树中,该节的位置数为该节点在兄弟节点中的序号4乘以进制10,转为长度为步长的字符串040,加到父节点的数字串后面,即为新节点的数字串1050010040。
步骤34,将待增加节点的节点信息和数字串存入关系表中,节点增加完毕。
以错误!未找到引用源。和错误!未找到引用源。为例,如果要删除节点“情报中心”,其流程实例是:
步骤41,取得要删除节点的数字串1060和数字串的长度4。
步骤42,从树型结构存储表中查询所有数字串前4位等于1060的节点,这些节点是待删除节点及其子孙节点。共有三个,分别是“情报中心”,“信息采集部”和“综合处理部”
步骤43,删除所有查询到的节点记录,所有计算完毕。
从以上的流程实例中可以看到,通过数字串和步长可以清晰的表示出树型结构的各节点的位置关系,从而快速将各条记录对应到树型结构的各节点位置,对节点的增删也很少会修改其他记录,提高了计算效率。
本发明应用于指挥和管理领域,不仅能够实现树型结构的快速存储和读取,同时根据标识了节点位置的数字串可以避免效率低下的遍历搜索,而且数字串的进制和步长可以灵活配置,提高了处理效率、灵活性和稳定性。
本发明提供了一种基于数字寻址的指挥关系树结构化存储与快速处理方法的思路及方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (7)
1.一种基于数字寻址的指挥关系树结构化存储与快速处理方法,其特征在于,包括以下步骤:
步骤1,用包含节点位置信息的数字串来标示指挥关系树上各节点,所述节点包括一个根节点和一组子节点,一个树的每个节点的数字串唯一,一个树的所有节点的数字串组成的集合是有序集;根节点的数字串等于根节点的位置数,子节点的数字串由其父节点的数字串和节点本身的位置数两部分组成;节点的位置数表示其在同层节点中位置的一串数字,其长度称为该节点的步长;
步骤2,将每个节点的节点标识、数字串、步长和节点信息作为一条记录存储入数据库,用一张二维表存储一个树的结构信息;
步骤3,对树的结构信息进行管理,包括读取树的结构信息,增加节点、删除节点。
2.根据权利要求1所述的基于数字寻址的指挥关系树结构化存储与快速处理方法,其特征在于,步骤1包括:
步骤11,确定数字串采用的进制k、根节点的数字串、根节点的步长n,根节点的步长为根节点的数字串长度,其中k和n为任意自然数;
步骤12,根据当前层节点数量级,预设下层节点的数量级为进制k的m次方,则下层节点的步长为m+1,m为任意自然数;
步骤13,取出当前要计算的节点,计算其位置数;计算方法是用待计算节点在同层节点中的位置i乘以进制数k;
步骤14,如果得到的位置数长度小于本层节点的步长,则在位置数左边补0直到位置数长度等于步长;如果位置数的长度超过步长,则将步长加1后返回步骤12;
步骤15,将得到的位置数加在当前节点的父节点的数字串后,得到当前节点的数字串;
步骤16,判断本层节点是否都已得到其数字串,如果是则进行步骤17,如果否则返回步骤13;
步骤17,判断是否已经为树的最底层,如果是则结束,否则返回步骤12。
3.如权利要求1所述的基于数字寻址的指挥关系树结构化存储与快速处理方法,其特征在于,步骤2中,所述存储一个树的结构信息的二维表的字段描述如下:
4.如权利要求1所述的基于数字寻址的指挥关系树结构化存储与快速处理方法,其特征在于,步骤3中从存储表中读取树的结构信息包括:
步骤311:将数据库中数字串长度最小的一条记录,作为树的根节点;
步骤312:将剩余记录中数字串长度最小的节点,其数字串去掉后面节点步长的数字,即为该节点的父节点的数字串,将每个叶子节点找到其对应的父节点插入树中,兄弟节点之间根据其数字串大小排序;
步骤313:重复步骤312,直到所有记录都对应为树的叶子节点。
5.如权利要求1所述的基于数字寻址的指挥关系树结构化存储与快速处理方法,其特征在于,步骤3中增加节点包括:
步骤321,确定要增加节点的父节点,得到父节点的数字串;
步骤322,如果待增加节点有其他同层节点,则进入步骤325,否则进入步骤323;
步骤323,为待增加节点指定一个步长,步长不小于3;
步骤324,将进制k转为长度为步长的位置数,加到父节点的数字串后面,即为新节点的数字串,转入步骤329;
步骤325,取同层节点的步长为该节点的步长;
步骤326,如果待增加节点作为兄弟节点中最后一个加入树中,则进入步骤327,否则进入步骤328;
步骤327,将该节点待插入的位置在兄弟节点中的序号乘以进制k,得到的结果转为长度等于步长的数字,即为该节点的位置数,加到父节点的数字串后面,即为新节点的数字串,进入步骤329;
步骤328,该节点待插入的位置的左边一个节点为该节点的左兄弟节点,该节点待插入的位置的右边一个节点为该节点的右兄弟节点,取该节点左右兄弟节点的数字串的中间值或最接近中间值的整数,即为待增加节点的数字串,如果左右兄弟节点的数字串的差的绝对值小于1,则减小左边兄弟节点的数字串,如果左边无法减小,则增加右兄弟节点的数字串,然后再重新计算待增加节点的数字串;
步骤329,将待增加节点的节点信息和数字串等存入二维表中,增加节点完成。
6.如权利要求1所述的基于数字寻址的指挥关系树结构化存储与快速处理方法,其特征在于,步骤3中删除节点包括:
步骤331,取得要删除节点的数字串PosVal和数字串的长度n;
步骤332,从树型结构存储表中查询所有数字串前n位等于PosVal的节点,所述节点是待删除节点及其子孙节点;
步骤333,删除所有查询到的节点。
7.如权利要求2或4或5中任意一项所述的基于数字寻址的指挥关系树结构化存储与快速处理方法,其特征在于,所述父节点和子节点之间具有以下特点:
(1)父节点数字串是子节点数字串的左子串;
(2)对任一节点N,若其数字串为PosVal,所有数字串是PosVal的左子串的节点,按数字串长度升序排列,组成了根节点到节点N的路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103061677A CN102508866B (zh) | 2011-10-09 | 2011-10-09 | 基于数字寻址的指挥关系树结构化存储与快速处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103061677A CN102508866B (zh) | 2011-10-09 | 2011-10-09 | 基于数字寻址的指挥关系树结构化存储与快速处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102508866A true CN102508866A (zh) | 2012-06-20 |
CN102508866B CN102508866B (zh) | 2013-03-27 |
Family
ID=46220952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103061677A Active CN102508866B (zh) | 2011-10-09 | 2011-10-09 | 基于数字寻址的指挥关系树结构化存储与快速处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102508866B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902811A (zh) * | 2012-10-19 | 2013-01-30 | 北京金和软件股份有限公司 | 一种快速生成树结构的数据库设计方法 |
CN104850591A (zh) * | 2015-04-24 | 2015-08-19 | 百度在线网络技术(北京)有限公司 | 一种数据的转换存储方法及装置 |
CN105207793A (zh) * | 2014-05-30 | 2015-12-30 | 亿阳信通股份有限公司 | 一种树状拓扑结构中节点信息的获取方法和系统 |
CN105653624A (zh) * | 2015-12-25 | 2016-06-08 | 精硕世纪科技(北京)有限公司 | 数据服务器及数据储存方法 |
CN107844582A (zh) * | 2017-11-13 | 2018-03-27 | 浪潮软件股份有限公司 | 一种树形结构的检索方法及检索装置 |
CN109388659A (zh) * | 2018-09-29 | 2019-02-26 | 北京京东尚科信息技术有限公司 | 数据存储方法、装置和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545048A (zh) * | 2003-11-17 | 2004-11-10 | 中兴通讯股份有限公司 | 一种用二维表实现的树的存储、访问的方法 |
CN101131699A (zh) * | 2007-09-20 | 2008-02-27 | 北京乾坤化物数字技术有限公司 | 带遗传信息的结构树的构建方法 |
JP2011118784A (ja) * | 2009-12-04 | 2011-06-16 | Sony Corp | 情報処理装置、情報処理方法およびプログラム |
-
2011
- 2011-10-09 CN CN2011103061677A patent/CN102508866B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545048A (zh) * | 2003-11-17 | 2004-11-10 | 中兴通讯股份有限公司 | 一种用二维表实现的树的存储、访问的方法 |
CN101131699A (zh) * | 2007-09-20 | 2008-02-27 | 北京乾坤化物数字技术有限公司 | 带遗传信息的结构树的构建方法 |
JP2011118784A (ja) * | 2009-12-04 | 2011-06-16 | Sony Corp | 情報処理装置、情報処理方法およびプログラム |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902811A (zh) * | 2012-10-19 | 2013-01-30 | 北京金和软件股份有限公司 | 一种快速生成树结构的数据库设计方法 |
CN102902811B (zh) * | 2012-10-19 | 2016-09-14 | 北京金和软件股份有限公司 | 一种快速生成树结构的数据库设计方法 |
CN105207793A (zh) * | 2014-05-30 | 2015-12-30 | 亿阳信通股份有限公司 | 一种树状拓扑结构中节点信息的获取方法和系统 |
CN105207793B (zh) * | 2014-05-30 | 2018-10-26 | 广州亿阳信息技术有限公司 | 一种树状拓扑结构中节点信息的获取方法和系统 |
CN104850591A (zh) * | 2015-04-24 | 2015-08-19 | 百度在线网络技术(北京)有限公司 | 一种数据的转换存储方法及装置 |
CN104850591B (zh) * | 2015-04-24 | 2019-03-19 | 百度在线网络技术(北京)有限公司 | 一种数据的转换存储方法及装置 |
CN105653624A (zh) * | 2015-12-25 | 2016-06-08 | 精硕世纪科技(北京)有限公司 | 数据服务器及数据储存方法 |
CN105653624B (zh) * | 2015-12-25 | 2019-02-26 | 精硕科技(北京)股份有限公司 | 数据服务器及数据储存方法 |
CN107844582A (zh) * | 2017-11-13 | 2018-03-27 | 浪潮软件股份有限公司 | 一种树形结构的检索方法及检索装置 |
CN109388659A (zh) * | 2018-09-29 | 2019-02-26 | 北京京东尚科信息技术有限公司 | 数据存储方法、装置和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102508866B (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508866B (zh) | 基于数字寻址的指挥关系树结构化存储与快速处理方法 | |
CN101719141B (zh) | 基于目录对象的文件处理方法和系统 | |
CN102968498B (zh) | 数据处理方法及装置 | |
CN103106249B (zh) | 一种基于Cassandra的数据并行处理系统 | |
CN104679772B (zh) | 分布式数据仓库中删除文件的方法、装置、设备及系统 | |
CN103902623B (zh) | 用于在存储系统上存取文件的方法和系统 | |
CN106960037A (zh) | 一种跨内外网的分布式索引资源整合与共享方法 | |
CN103559323B (zh) | 数据库实现方法 | |
CN104239443B (zh) | 一种序列化数据操作日志的存储方法 | |
KR101622810B1 (ko) | 빅데이터 분산 시스템 및 방법 | |
EP2344959A2 (en) | Index compression in databases | |
CN102375853A (zh) | 分布式数据库系统、在其中建立索引的方法和查询方法 | |
CN103377100B (zh) | 一种数据备份方法、网络节点及系统 | |
US20070288515A1 (en) | Method and apparatus for routing data in an automatic identification system | |
CN100433019C (zh) | 一种数据存储与检索的方法及系统 | |
US11106739B2 (en) | Document structures for searching within and across messages | |
CN104536908B (zh) | 一种面向单机的海量小记录高效存储管理方法 | |
CN103246549A (zh) | 一种数据转存的方法及系统 | |
CN101692231B (zh) | 一种适合空间查询的遥感影像分块排序存储方法 | |
CN109741034B (zh) | 一种网格树形组织管理方法及装置 | |
CN103500165A (zh) | 一种结合聚类和双key值的高维向量检索方法 | |
EP2990895A1 (en) | Industrial monitoring system | |
CN104424204A (zh) | 索引机制合并方法、搜索方法、装置及设备 | |
KR101515304B1 (ko) | 하둡 기반의 리듀스-사이드 조인 처리 시스템의 리듀스-사이드 조인 질의 처리 방법 | |
CN101237347B (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 |