CN112287642B - 树形结构自增数据节点id及其路径链二进制编码方法 - Google Patents

树形结构自增数据节点id及其路径链二进制编码方法 Download PDF

Info

Publication number
CN112287642B
CN112287642B CN202011598365.0A CN202011598365A CN112287642B CN 112287642 B CN112287642 B CN 112287642B CN 202011598365 A CN202011598365 A CN 202011598365A CN 112287642 B CN112287642 B CN 112287642B
Authority
CN
China
Prior art keywords
ljm
bbj
node
binary
bit
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.)
Active
Application number
CN202011598365.0A
Other languages
English (en)
Other versions
CN112287642A (zh
Inventor
杨灿
李闰民
韩楚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN202011598365.0A priority Critical patent/CN112287642B/zh
Publication of CN112287642A publication Critical patent/CN112287642A/zh
Application granted granted Critical
Publication of CN112287642B publication Critical patent/CN112287642B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开一种树形结构自增数据节点ID及其路径链二进制编码方法,该方法通过迭代获取第i层数据节点ID自增编号值ji的值,计算其二进制码字长度bji,并计算bji的二进制码长度bbji,实现即时动态编码;为实现唯一解码,根据系统最大节点ID值的二进制字长度,计算bbi的最大字长宽度LJM,设LJM为固定比特间隔,由LJM+bbji+bji构成该编码体系的比特宽度分配核心方案。本发明还公开编解码系统。该方法比固定字节编码节省空间,能提高检索效率,实现逐条数据ID即时解码。本发明在大型数据资源管理与维护、通用Web数据集成GWDI、命名数据网络NDN、RMI远程方法调用等方面具有重要应用价值。

Description

树形结构自增数据节点ID及其路径链二进制编码方法
技术领域
本发明涉及信息系统编码技术领域,涉及分级的数据域内数据对象的自增标示统一编码,即树形结构自增数据节点ID及其路径链二进制编码方法。
背景技术
在分布式系统、数据库与大数据管理系统中,树形数据结构是一种基本的数据表达和存储方式,一般系统在扩展数据节点的时候,为了保证节点的唯一标志,往往采用自增ID的形式,实际的分布式或大数据生态系统中,在树形结构的各个层次上,均有可能不断进行节点的增添。自增ID为信息系统内部和/或分布式系统之间的数据对象调用提供唯一标识,同时为实现软件信息系统之间广域的“数据耦合”提供一种数据资源的标识方法。“松耦合,高内聚”是现代软件架构的基本设计原则,“数据耦合”是实现“松耦合”软件架构的主要方法。传统的软件系统之间的信息交换一般采用“接口”方式,当前XML、JSON均为成为普遍应用的数据交换技术,为了满足良好的可读性,XML、JSON一般直接采用ASCII码文件形式,其数据调用和访问均涉及文件操作,并且一般系统的XML或JSON文件的语义理解是在系统内自行解析的,即为相对“封闭”的系统,其互联互通均须通过对XML或JSON文件的操作来实现。
传统的自增ID编码方式位固定字长编码,一般将其前驱节点的ID作为索引路径的编码前缀,往往需要开销大量的存储空间,若采用文件压缩方案,则调取某一个节点ID需要解码整个压缩文件,其操控性和可读性更弱。结合申请号为CN201810455972.8的专利申请“一种表驱动的云模式软件自动构造方法及系统”和申请号为CN201410180915.5的专利申请“一种轻量级应用开发云服务平台及其资源的访问方法”所记载的可伸缩软件系统中可扩展的数据资源应用场景,构建一种即时动态编码的方案具有重要的应用价值。
发明内容
树形数据结构可以高效精简地表达复杂的大数据结构,但为分层检索带来了复杂性,对索引路径进行组合编码能够提高检索效率,但是传统的索引编码方案占用相当大的存储空间,也影响到其检索性能。为了克服现有技术存在的缺陷与不足,结合可伸缩软件系统中可扩展的数据资源应用场景,为信息系统内部和/或分布式系统提供更为具体的数据资源唯一标示方法,也为其它开放系统的互联互通、系统认证、业务集成提供一套基于统一编码规则的数据资源定位和识别方案,本发明提供一种树形结构自增数据节点ID二进制编码方法和基于此方法嵌入的数据节点访问路径链二进制编码方法,本发明旨在为泛在的数据对象提供精简的二进制唯一标示方法,在保证目标数据对象被唯一标定的前提下,比采用XML或JSON方式能够节省大量的存储空间,本发明的包含索引路径的树形结构自增ID编码方案对于树形数据结构自增节点,采用分层简约表达的方法实现了树形结构任意数据节点的唯一访问路径标示,且达到了大大缩减树形结构数据节点的索引路径所占用的空间的效果。在实现唯一标识、唯一解码、压缩存储空间、直接逐条解码方面具有显著优势,实现开放软件生态中异构数据对象的唯一标示,以满足数据对象访问、调用和复用的业务需求,对于实现数据驱动的软件构造具有重要的现实意义。
为了达到上述目的,本发明内容包括下述技术要点:
本发明提供一种树形结构自增数据节点ID二进制编码方法,包括下述步骤:
所述树形结构是指任意子层中一个数据节点有且仅有一个父层数据节点的树形拓扑数据组织结构,节点ID的十进制自增编号生成顺序为自根节点至叶节点,自左至右,对于该树形结构中第i层的一个数据节点ID自增编号值ji,采用下述方式进行二进制编码:
1.1 计算第i层中的一个数据节点ID自增编号值ji的二进制码长度bji
1.2 计算二进制码长度bji所需的二进制码长度bbji
1.3 预设固定参数LJM,表示该树形结构中各分层节点二进制编码长度bbji的最大值所需的二进制比特位数量,作为该树形结构数据节点ID索引路径链路上节点之间的固定比特间隔。
作为优选的技术方案,采用
Figure 906124DEST_PATH_IMAGE001
表示向下取整,所述计算第i层中的ID自增编号值ji的二进制码长度bji,具体计算公式表示为:
bji =1 +
Figure 88844DEST_PATH_IMAGE002
log2ji
Figure 930898DEST_PATH_IMAGE003
所述计算二进制码长度bji所需的二进制码长度bbji,具体计算公式表示为:
bbji= 1 +
Figure 388424DEST_PATH_IMAGE002
log2bji
Figure 265113DEST_PATH_IMAGE003
所述计算二进制码长度bbji所需的二进制码长度bbbji,具体计算公式表示为:
bbbji=1 +
Figure 149893DEST_PATH_IMAGE002
log2bbji
Figure 275981DEST_PATH_IMAGE003
所述预设固定参数LJM,具体表示为:
LJM=Max(bbbji)=1+
Figure 537198DEST_PATH_IMAGE002
log2(1+
Figure 2814DEST_PATH_IMAGE002
log2(1+
Figure 324074DEST_PATH_IMAGE002
log2JM
Figure 875141DEST_PATH_IMAGE003
Figure 205628DEST_PATH_IMAGE003
Figure 56910DEST_PATH_IMAGE003
> 0,其中JM为所有层中的数据节点的预计的最大可能个数;
采用向上取整的表示形式
Figure 301070DEST_PATH_IMAGE004
,上述参数的具体计算方法为:
Figure 136170DEST_PATH_IMAGE005
采用以上两套方法计算的结果一致。
本发明提供树形结构自增数据节点ID路径链二进制编码方法,包括下述步骤:
2.1 设置系统预设值SYSTEM内容,作为路径链数据结构的编码头信息;
2.2 采用逆序编码、顺序编码或继承编码中的任意一种编码方式对于目标节点ji的访问路径链进行编码;
2.2.1所述逆序编码是指从目标节点逆向朝其各级父节点直至根节点RootNode的方式完成其二进制路径链编码,对于该路径上的每个数据节点,依次先将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置0;然后,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位;再将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;
2.2.2所述顺序编码是指从根节点RootNode出发向其各级子节点直至目标节点的方式完成其二进制路径链编码,对于该路径上的每个数据节点,依次先将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置0;然后,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位;再将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;
2.2.3所述继承编码是指从根节点RootNode出发向其各级子节点直至目标节点的方式完成其二进制路径链编码,对于该路径上的当前目标数据节点,先将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置0;然后,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位;再将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;当前目标节点的二进制编码尾随其父节点的路径二进制编码;即只需对当前节点进行二进制编码,其父节点的编码的传递序列直接从其前驱节点继承;
2.3判断当前层是否还有新增数据节点,若还有新增数据节点,则ID自增编号值ji递增后返回编码步骤1.1,若无新增数据节点,则判断当前层是否为树形结构的最后一层;若为树形结构的最后一层,则结束,否则当前层层数递增后返回编码步骤1.1,直至遍历树形结构的最后一层。
作为优选的技术方案,所述逆序编码步骤具体包括:
针对新的自增数据节点,对其尾部的LJM个比特位置0,编码为LJM个0,表示该自增节点编码的结束符;
将ID自增编号值ji二进制化为Bji,将Bji的各个二进制位依次填入倒数第LJM+bji位至倒数第LJM+1位;
将二进制码长度bji二进制化为Bbji,将Bbji的各个二进制位依次填入倒数第LJM+bji+bbji位至倒数第LJM+bji+1位;
计算二进制码长度bbji所需的二进制码长度bbbji,并将bbji的值二进制化为Bbbji,若bbbji==LJM,则将Bbbji的各个二进制位自右至左依次填入倒数第LJM+bji+bbji+LJM位至倒数第LJM+bji+bbji+1位;若bbbji<LJM,则在倒数第LJM+bji+bbji+LJM位至倒数第LJM+bji+bbji+LJM-Bbbji位填0;
若i>1,则以上一层父节点FN的序列号置换,遍历树形结构的各个层级,直至i=1,则结束编码,在其头部把系统预设值SYSTEM的内容写入sPrefix个比特位置。
作为优选的技术方案,所述顺序编码步骤具体包括:
在头部把系统预设值SYSTEM内容写入sPrefix个比特位置;
计算第i=1层中的ID自增编号值j1的二进制码长度bj1,将j1二进制化为Bj1
计算二进制码长度bj1所需的二进制码长度bbj1,并将bji二进制化为Bbji
计算bbj1所需的二进制字长bbbji的值,并将bbji二进制化为Bbbj1
依次将Bbbj1写入LJM个比特位,如果bbbji<LJM,则在Bbbj1的左侧头部补充0,随后在LJM个比特位之后将Bbji写入其后随的bbj1个比特位,然后在LJM+bbj1个比特位之后将Bji写入其后随的bj1个比特位;
若该数据节点没有后续节点,则在尾部写入LJM个0,表示编码结束;
若存在后续节点,遍历所有层级进行编码,直至新增节点的末尾。
作为优选的技术方案,所述继承编码步骤中,当前节点编码的主体表示为:
FNSHi= FNSHi-1+ *Bbbji(LJM)+Bbji(bbji)+Bji(bbji
其中,(.)内的值表示比特位的宽度,+表示比特位的拼接,*表示前面位置补填0;
当前节点最终编码为:
SYSTEM(sPrefix)+ FNSHi+ 0(LJM);
其中,sPrefix表示用户自定义的固定比特系统前缀SYSTEM。
本发明还提供一种树形结构自增数据节点ID路径链二进制编码方法,包括上述树形结构自增数据节点ID路径链二进制编码方法,将树形结构当前自增节点ID路径链的二进制编码值作为当前自增节点ID的二进制编码值,即以路径值替代节点值。
本发明提供一种树形结构自增数据节点ID路径链二进制解码方法,对应上述树形结构自增数据节点ID路径链二进制编码方法的逆过程,具体步骤包括:
获取系统预设值SYSTEM内容;
首先,i=1,取出第i=1个间隔位LJM的值,若LJM≠0,则获得该数据对象第1级前缀的字长的字长值bbj1,根据所获取的bbj1,提取在该LJM之后的bbj1位获取该数据对象的第1级前缀的字长值bj1
根据所得的bj1的值,提取其序号j1获得其第1级前缀的ID值;若LJM=0,则结束,表示第1级数据节点对象为空;
随后,i=i+1,取出第i+1个间隔位LJM的值,若LJM=0,解码结束;
若LJM≠0,则提取该LJM位二进制的值赋给bbji,根据所获取的bbji,提取在该LJM之后的bbji位获取该数据对象的第i级前缀的字长值bji
根据所得的bji的值,提取其序号ji获得其第i级前缀的ID值,遍历所有层级进行解码,直到LJM=0,解码结束。
本发明提供一种树形结构自增数据节点ID路径链二进制编码系统,包括:树形结构层级及编号选取模块、二进制码计算模块、固定参数预设模块、预设值设置模块、编码模块和迭代判断模块;
所述树形结构层级及编号选取模块用于选取树形结构第i层,以及数据节点在第i层中的ID自增编号值ji
所述二进制码计算模块用于计算第i层中的ID自增编号值ji的二进制码长度bji,计算二进制码长度bji所需的二进制码长度bbji
所述固定参数预设模块用于预设固定参数LJM,表示树形结构中分层节点二进制编码的固定比特间隔;
所述预设值设置模块用于设置系统预设值SYSTEM内容;
所述编码模块用于采用逆序编码、顺序编码或继承编码中的任意一种编码方式进行编码;
所述逆序编码按当前编码节点所在层逆序至根节点,分别将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置0,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位,将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;
所述顺序编码从根节点顺序至当前编码节点,分别将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置0,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位,将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;
所述继承编码是指从根节点RootNode出发向其各级子节点直至目标节点的方式完成其二进制路径链编码,对于该路径上的当前目标数据节点,先将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置0;然后,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位;再将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;当前目标节点的二进制编码尾随其父节点的路径二进制编码;即只需对当前节点进行二进制编码,其父节点的编码的传递序列直接从其前驱节点继承;
所述迭代判断模块用于判断当前层是否还有新增数据节点,若还有新增数据节点,则ID自增编号值ji递增后返回编码步骤,若无新增数据节点,则判断当前层是否为树形结构的最后一层;若为树形结构的最后一层,则结束,否则当前层层数递增后返回编码步骤,直至遍历树形结构的最后一层。
本发明提供一种树形结构自增数据节点ID路径链二进制解码系统,与上述树形结构自增数据节点ID二进制编码系统相对应,包括:系统预设值获取模块、间隔位内容提取模块和判断遍历模块;
所述系统预设值获取模块用于获取系统预设值SYSTEM内容;
所述间隔位内容提取模块用于取出第i=1个间隔位LJM的值,若LJM≠0,则获得该数据对象第1级前缀字长的字长值bbj1,根据所获取的bbj1,提取在该LJM之后的bbj1位获取该数据对象的第1级前缀的字长值bj1
根据所得的bj1的值,提取其序号j1获得其第1级前缀的ID值;若LJM=0,则结束,表示第1级数据节点对象为空;
取出第i+1个间隔位LJM的值;
所述判断遍历模块用于判断LJM是否为0,若LJM=0,解码结束;
若LJM≠0,则提取该LJM位二进制的值赋给bbji,根据所获取的bbji,提取在该LJM之后的bbji位获取该数据对象的第i级前缀的字长值bji
根据所得的bji的值,提取其序号ji获得其第i级前缀的ID值,遍历所有层级进行解码,直到LJM=0,解码结束。
本发明与现有技术相比,具有如下优点和有益效果:
(1)本发明为树形数据结构中的节点数据对象的索引定位路径提供精简的二进制唯一编码标示方法,在保证目标数据对象被唯一标定的前提下,比采用XML或JSON方式能够节省大量的存储空间,本发明的自增ID编码方案对于树形数据结构自增节点,在实现唯一标识、唯一解码、压缩存储空间、直接逐条解码方面具有显著优势,实现开放软件生态中异构数据对象的唯一标示,以满足数据对象访问、调用和复用的业务需求,对于实现数据驱动的软件构造具有重要的现实意义。
(2)本发明对于非标准化分层数据结构的索引定位路径标示的精简表达具有借鉴意义。
(3)传统的实现方案往往需要开销大量的索引存储空间来换取检索效率,本发明为多级树形数据的深度检索提供了一种扁平化的索引路径编码方案,在保证同等高效的检索效率的基础上,大幅度地缩减了树形结构索引路径的ID存储空间,对于巨型、超大型数据结构的表达和索引具有基础意义,其主要价值在于其低冗余与高效率,对于大规模数据存储和数据检索具有实际意义,对于大数据的分布式存取与快速检索调用具有现实意义。
附图说明
图1为本发明的树形结构数据节点自增ID编码比特分配示意图;
图2为本发明数据节点自增ID逆序编码方案步骤SI3.1示意图;
图3为本发明数据节点自增ID逆序编码方案步骤SI3.2示意图;
图4为本发明数据节点自增ID逆序编码方案步骤SI3.3示意图;
图5为本发明数据节点自增ID逆序编码方案步骤SI3.4示意图;
图6为本发明数据节点自增ID逆序编码方案步骤SI3.5示意图;
图7为本发明数据节点自增ID逆序编码方案步骤SI3.6示意图;
图8为本发明数据节点自增ID顺序编码方案步骤SS3.1示意图;
图9为本发明数据节点自增ID顺序编码方案步骤SS3.2示意图;
图10为本发明数据节点自增ID顺序编码方案步骤SS3.3示意图;
图11为本发明的树形数据节点自增ID的顺序编码流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例
本实施例提供一种树形结构自增数据节点ID二进制编码方法,为了实现开放软件生态系统GWDI(通用Web数据集成系统)中异构数据对象唯一标示,以满足数据对象访问、调用和复用的业务需求,采用本发明设计一套数据对象唯一标示符编码,并通过该编码码字的全球化统一注册,实现数据对象资源的全球化分布式访问调用。
本实施例的“自增节点”是指自然增长的数据节点,默认生成方式为当前ID+1,树形数据结构是一种具有广泛应用的数据结构,本实施例的面向树形结构(包括但不限于二叉树)进行自增数据节点的编码,该编码方法是可变长编码、唯一可译码、非前缀码、即时码。
本实施例的树形结构是一种层次化的嵌套结构,可以递归表示。本实施例所针对的树形结构是指在该树形结构中,树根结点没有前驱结点,其余每个结点有且只有一个前驱结点,叶子结点没有后续结点,其余每个结点的后续节点数可以是一个也可以是多个。在该树形结构中,一个自增节点是指当前最新的节点(当前没有后续节点),是其前驱节点(FN:FatherNode)之下的一个新增节点(CN:CurNode),取当前FN的顺序号为i-1代,当前CN在i代的值为ji。针对该类树形结构模型,每个节点的二进制编码以比特为单位,用
Figure 4769DEST_PATH_IMAGE001
表示向下取整,用
Figure 772874DEST_PATH_IMAGE004
表示向上取整),本实施例的的树形结构自增数据节点ID二进制编码方法的步骤为:
(1)当前自增节点CN索引路径标记可变长二进制编码:当前第i代数据节点CN的顺序号为该序号ji,所需占用的字长为:
bji =1 +
Figure 967095DEST_PATH_IMAGE002
log2ji
Figure 758334DEST_PATH_IMAGE003
公式(1)
表示该序号所占字长bji所需的长度为:
bbji= 1 +
Figure 633886DEST_PATH_IMAGE002
log2bji
Figure 194180DEST_PATH_IMAGE003
公式(2)
表示该序号所占字长的字长bbji所需的长度为:
bbbji=1 +
Figure 824881DEST_PATH_IMAGE002
log2bbji
Figure 837837DEST_PATH_IMAGE003
公式(3)
同理,其父数据节点ji-1的序号所占字长为bji-1,表示该序号所占字长bji所需的长度为bbji-1,表示该序号所占字长的字长bbji所需的长度为bbbji-1,以此类推。
设所有层中的数据节点的预计的最大可能个数为JM:
JM = Predict(MAX(ji))> 1,公式(4)
这里Predict( .)表示一个预测函数,取该树分层节点二进制编码的固定间隔位为LJM:
LJM=Max(bbbji)=1+
Figure 782659DEST_PATH_IMAGE002
log2(1+
Figure 931881DEST_PATH_IMAGE002
log2(1+
Figure 936746DEST_PATH_IMAGE002
log2JM
Figure 442857DEST_PATH_IMAGE003
Figure 722528DEST_PATH_IMAGE003
Figure 991836DEST_PATH_IMAGE003
> 0,公式(5)
LJM存储当前节点CN及其各级FN的顺序号的字长数的字长的值,即bbji;bbji用于存储当前FN或CN的字长bji的值;bji用于存储当前FN或CN的ji的值。设LJM=0,即设置LJM的每个比特位均为0,表示本数据节点编码结束,即结束符为LJM个0,表示没有后续节点。
如果采用向上取整的表示形式,公式(1)表示为:
Figure 167602DEST_PATH_IMAGE006
如果采用向上取整的表示形式,公式(2)表示为:
Figure 951887DEST_PATH_IMAGE007
如果采用向上取整的表示形式,公式(3)表示为:
Figure 238512DEST_PATH_IMAGE008
如图1所示,进行当前可变长自增节点ID二进制编码比特分配,图中sPrefix为用户可以自定义的固定比特系统前缀SYSTEM,该前缀部分的设计不受约束。为了方便可读,该二进制编码可转换为十进制或者其它进制表示。
基于以上涉及的编码方法,对于该树中的一个自增数据节点所需编码码长为LCN,表示为
LCN=
Figure 96747DEST_PATH_IMAGE009
(LJM +bbji+bji);公式(6)
其中,bbji和bji是随着数据节点的增长而自适应增长的,因此,可以保障自增数据节点ID编码的字长按需增长。如果以向上取整形式表示,且相关元素(例如jr)均不为2的整数次幂的情况时,
Figure 240152DEST_PATH_IMAGE010
若采用固定字长,则该树形结构的数据节点ID的固定字长设计为
Figure 714996DEST_PATH_IMAGE011
log2 JM
Figure 539732DEST_PATH_IMAGE012
,则在该树的第i层,该编码方法比固定字长编码方法所获得的字长存储效率之比为
Figure 783632DEST_PATH_IMAGE013
,可表示为:
Figure 832359DEST_PATH_IMAGE014
公式(7)
(2)本发明方法(1)中所述的自增ID间隔默认为+1,即
Figure 794499DEST_PATH_IMAGE015
ID = 1,即:
树的同层新增节点编号 =树的同层前一节点编号 + 1公式(8)
同时,本发明方法(1)中的所述方法支持自增ID为
Figure 157347DEST_PATH_IMAGE015
ID = n> 1的整数的情况,即:
树的同层新增节点编号 =树的同层前一节点编号 +n公式(9)
公式9为n>1的情况表述,其它ID编码方法与n=1的情况一致。为了进一步节省编码空间,n的取值可以预先在system头字段中进行设计,则编码方案与n=1完全一致,解码时候从SYSTEM头字段中读取n的值,即可进行解码操作。
(3)基于本发明所述编码方法(1),首先根据公式(4)和公式(5)首先根据估计的JM值,确定LJM的值,如图1所示,以SI为例,本发明提供三种具体的编码方案,其步骤的编号前缀别为SI、SS、SH,分别逆序编码SI、顺序编码SS和继承编码SH,具体实施采用其中的一种即可。
逆序编码方案SI:如图1所示,表示编码步骤从尾至头依次编码,其步骤为:
SI3.1 对于一个新的自增数据节点,对其尾部的LJM个比特位,置0,即编码为LJM个0,表示该自增节点编码的结束符;如图2所示,这里*表示前面位置补填足够的0。
SI3.2 对于该新的自增数据节点,根据该新增数据节点所在父节点内的自增序列号ji,根据公式(1)计算其序列号的二进制字长bji,并将ji二进制化为Bji,如图3所示,将Bji的各个二进制位依次填入倒数第(LJM+bji)位至倒数第(LJM+1)位;
SI3.3 对于该新的自增数据节点,根据SI3.2和公式(2)计算bji所需的二进制字长bbji的值,如图4所示,根据公式(2)计算bji所需的二进制字长bbji,将bji二进制化为Bbji,将Bbji的各个二进制位依次填入倒数第(LJM+bji+bbji)位至倒数第(LJM+bji+1)位;
SI3.4 对于该新的自增数据节点,根据SI3.3和公式(3)计算bbbji,并将bbbji的值二进制化为Bbbji;如图5所示,如果bbbji==LJM,将Bbbji的各个二进制位自右至左依次填入倒数第(LJM+bji+bbji+LJM)位至倒数第(LJM+bji+bbji+1)位;如果bbbji<LJM,则在倒数第(LJM+bji+bbji+LJM)位至倒数第(LJM+bji+bbji+LJM-Bbbji)位填0;
基于公式(4)和公式(5)的定义,不出现bbbji>LJM的情况。
SI3.5如图6所示,如果i>1,则以上一层父节点FN的序列号置换,对于该新的自增数据节点,即i=i-1,转到SI3.2~SI3.5;
SI3.6如果i=1,则结束,如图7所示,在其头部把系统预设值SYSTEM的内容写入sPrefix个比特位置。
(二)顺序编码方案SS:表示编码步骤从头至尾依次编码,类似SI方案,其不同在于SI比特分配顺序是从尾至头,SS是从头至尾;其步骤为:
SS3.1如图8所示,首先,在头部把系统预设值SYSTEM内容写入sPrefix个比特位置;然后,对于该新的自增数据节点,根据该新增数据节点所在树的根节点(即i=1)驱动的数据节点的自增序列号j1,计算三个值:
(1)根据公式(1)计算其序列号的二进制字长bj1,并将j1二进制化为Bj1
(2)根据公式(2)计算bji所需的二进制字长bbji的值,根据公式(2)计算bj1所需的二进制字长bbj1,并将bj1二进制化为Bbj1
(3)根据公式(3)计算bbj1所需的二进制字长bbbj1的值,并将bbj1二进制化为Bbbj1
如图9所示,依次将Bbbj1写入LJM个比特位,如果bbbj1<LJM,则在Bbbj1的左侧头部补充足够的0,随后在LJM个比特位之后将Bbj1写入其后随的bbj1个比特位,然后在(LJM+bbj1)个比特位之后将Bj1写入其后随的bj1个比特位。若该数据节点为叶子节点,即没有后续节点,则在其尾部写入LJM个0,表示编码结束。若存在后续节点,则进入下一步SS3.2;
SS3.2如图10所示,取i=i+1,循环迭代执行SS3.1的相关计算过程,直到该新增节点的末尾。
(三)继承编码方案SH:表示其编码的当前节点的所有父节点全部已经采用该继承编码方案进行其ID二进制编码生成,故所有节点只需要编码当前叶子节点的码字即可,其父编码的传递序列直接从其前驱节点继承,其分步编码的步骤为SS方案的特例。即设前驱节点编码为FNSHi-1,则当前叶子节点的编码步骤为SS3.1或SI3.1~SI3.4。其当前节点编码的主体为:
FNSHi= FNSHi-1+ *Bbbji(LJM)+Bbji(bbji)+Bji(bbji
这里(.)内的值表示比特位的宽度,‘+’表示比特位的拼接,当前节点最终编码为:SYSTEM(sPrefix)+ FNSHi+ 0(LJM);
如图11所示,本实施例给出树形数据节点自增ID的逆序编码工作流程,相应的解码工作流为其逆过程。
(4)基于本发明步骤(3)的编码方案的解码步骤为:
S4.1对于一个分布式分层树形结构大数据集所包含的数据节点对象,本实施例分布式分层树形结构大数据集可用于大型图片库的树形多级分类索引标签构造,根据本发明(1)分配其头部固定比特数分别取出sPrefix比特位获取SYSTEM的值;
S4.2首先,i=1,取出第i=1个间隔位LJM的值,若LJM≠0,则获得该数据对象第1级前缀的字长的字长值bbj1,根据所获取的bbj1,提取在该LJM之后的bbj1位获取该数据对象的第1级前缀的字长值bj1;根据所得的bj1的值,提取其序号j1获得其第1级前缀的ID值;若LJM=0,则结束,表示第1级数据节点对象为空;
S4.3随后,i=i+1,取出第i+1个间隔位LJM的值,若LJM=0,解码结束;若LJM≠0,则提取该LJM位二进制的值赋给bbji,根据所获取的bbji,提取在该LJM之后的bbji位获取该数据对象的第i级前缀的字长值bji;根据所得的bji的值,提取其序号ji获得其第i级前缀的ID值,循环执行S4.3直到LJM=0,解码结束;
本实施例的一种树形结构自增数据节点ID路径链二进制编码方法,包括上述树形结构自增数据节点ID路径链二进制编码方法,将树形结构当前自增节点ID路径链的二进制编码值作为当前自增节点ID的二进制编码值,即以路径值替代节点值。
本实施例还提供一种树形结构自增数据节点ID路径链二进制编码系统,包括:树形结构层级及编号选取模块、二进制码计算模块、固定参数预设模块、预设值设置模块、编码模块和迭代判断模块;
所述树形结构层级及编号选取模块用于选取树形结构第i层,以及数据节点在第i层中的ID自增编号值ji
所述二进制码计算模块用于计算第i层中的ID自增编号值ji的二进制码长度bji,计算二进制码长度bji所需的二进制码长度bbji
所述固定参数预设模块用于预设固定参数LJM,表示树形结构中分层节点二进制编码的固定比特间隔;
所述预设值设置模块用于设置系统预设值SYSTEM内容;
所述编码模块用于采用逆序编码、顺序编码或继承编码中的任意一种编码方式进行编码;
所述逆序编码按当前编码节点所在层逆序至根节点,分别将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置0,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位,将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;
所述顺序编码从根节点顺序至当前编码节点,分别将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置0,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位,将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;
所述继承编码是指从根节点RootNode出发向其各级子节点直至目标节点的方式完成其二进制路径链编码,对于该路径上的当前目标数据节点,先将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置0;然后,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位;再将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;当前目标节点的二进制编码尾随其父节点的路径二进制编码。即只需对当前节点进行二进制编码,其父节点的编码的传递序列直接从其前驱节点继承。
所述迭代判断模块用于判断当前层是否还有新增数据节点,若还有新增数据节点,则ID自增编号值ji递增后返回编码步骤,若无新增数据节点,则判断当前层是否为树形结构的最后一层;若为树形结构的最后一层,则结束,否则当前层层数递增后返回编码步骤,直至遍历树形结构的最后一层。
本实施例还提供一种树形结构自增数据节点ID路径链二进制解码系统,与上述树形结构自增数据节点ID二进制编码系统相对应,包括:系统预设值获取模块、间隔位内容提取模块和判断遍历模块;
所述系统预设值获取模块用于获取系统预设值SYSTEM内容;
所述间隔位内容提取模块用于取出第i=1个间隔位LJM的值,若LJM≠0,则获得该数据对象第1级前缀字长的字长值bbj1,根据所获取的bbj1,提取在该LJM之后的bbj1位获取该数据对象的第1级前缀的字长值bj1
根据所得的bj1的值,提取其序号j1获得其第1级前缀的ID值;若LJM=0,则结束,表示第1级数据节点对象为空;
取出第i+1个间隔位LJM的值;
所述判断遍历模块用于判断LJM是否为0,若LJM=0,解码结束;
若LJM≠0,则提取该LJM位二进制的值赋给bbji,根据所获取的bbji,提取在该LJM之后的bbji位获取该数据对象的第i级前缀的字长值bji
根据所得的bji的值,提取其序号ji获得其第i级前缀的ID值,遍历所有层级进行解码,直到LJM=0,解码结束。
在本实施例中,树形数据结构的层次n=4层,每层数据对象的最大值分别为ji:1,5,11,65535;
所以取LJM=
Figure 905686DEST_PATH_IMAGE011
log2
Figure 859736DEST_PATH_IMAGE011
log2
Figure 43592DEST_PATH_IMAGE011
log265535
Figure 272448DEST_PATH_IMAGE016
Figure 287678DEST_PATH_IMAGE016
Figure 678208DEST_PATH_IMAGE016
=
Figure 411677DEST_PATH_IMAGE011
log2
Figure 381907DEST_PATH_IMAGE011
log2 15
Figure 782802DEST_PATH_IMAGE016
Figure 553355DEST_PATH_IMAGE016
=
Figure 242962DEST_PATH_IMAGE011
log2 4
Figure 813621DEST_PATH_IMAGE016
= 3比特位,取系统标示SYSTEM=‘GWDI’,取sPrefix为32比特;
本实施例对前缀部分的这个固定比特宽度不做重点阐述。
例如,本实施例中第2层的第5个数据对象,如下表1所示,可以编码为:
表1 第2层的第5个数据对象编码表
Figure 475546DEST_PATH_IMAGE017
即该数据对象的码字的可变长部分为:0011101011101,共13比特,若采用固定比特率,需要16*2=32比特。
例如,本实施例中第3层的第11个数据对象,且该数据的父数据对象为第2层的第5个数据对象,如下表2所示,则该数据对象可以编码为二进制数:
表2 第3层的第11个数据对象编码表
Figure 207879DEST_PATH_IMAGE018
即该数据对象的码字的可变长部分为:00111010111010111001011,共23比特,若采用固定比特率,需要16*3=48比特。
例如,本实施例中第4层的第31个数据对象,且该数据的父数据对象为第3层第11个数据对象,如下表3所示,该数据对象可以编码为二进制数:
表3 第4层的第31个数据对象编码表
Figure 384782DEST_PATH_IMAGE019
即该数据对象的码字的可变长部分为:0011101011101011100101101110111111000,共34比特,若采用固定比特率,需要16*4=64比特。
例如,本实施例中第4层的第1024个数据对象,且该数据的父数据对象为第3层第11个数据对象,如下表4所示,该数据对象可以编码为二进制数:
表4 第4层的第1024个数据对象编码表
Figure 493553DEST_PATH_IMAGE020
即该数据对象的码字的可变长部分为:0011101011100011100101110010101111111111000,共43比特,若采用固定比特率,需要16*4=64比特。
例如,本实施例中第4层的第65536个数据对象,且该数据的父数据对象为第3层第11个数据对象,如下表5所示,该数据对象可以编码为二进制数:
表5 第4层的第65536个数据对象
Figure 72302DEST_PATH_IMAGE021
即该数据对象的码字的可变长部分为:001110101110001110010111001111111111111111111000,共48比特,若采用固定比特率,需要16*4=64比特。
因此,该树形数据结构节点的唯一编码方式,随着自增序列从小到大,其所占码字的长度能够自适应的逐步增长,以适应大的序列号的需要,可以节省码字空间。即自增码小的时候会自动采用较短的编码字长,自增码大的时候会自适应地采用相对较长的编码字长,从而达到缩小码字空间的目的。本发明采用自适应设计自增字段三级动态编码方案,即LJM+bji+bbji方案,该编码方案对应节省注册表的空间大小,提高索引查找速度具有重要意义。本发明包括但不限于该编码方案在上述实施例所提GWDI,以及RMI(Remote MethodInvocation,远程方法调用)、数据库主键/外键设计、NDN(Named Data Networking,命名数据网络)中的应用。
本发明不但为可伸缩软件系统中可扩展的数据资源应用场景提供了更为具体的数据资源唯一标示方法,同时本发明也为其它开放系统的互联互通、系统认证、业务集成提供了一套基于统一编码规则的数据资源定位和识别方案,在大型数据资源管理与维护、通用Web 数据集成GWDI、命名数据网络NDN、RMI远程方法调用等方面具有重要应用价值。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (10)

1.一种树形结构自增数据节点ID二进制编码方法,其特征在于,包括下述步骤:
所述树形结构是指任意子层中一个数据节点有且仅有一个父层数据节点的树形拓扑数据组织结构,节点ID的十进制自增编号生成顺序为自根节点至叶节点,自左至右,对于该树形结构中第i层的一个数据节点ID自增编号值ji,采用下述方式进行二进制编码:
1.1 计算第i层中的一个数据节点ID自增编号值ji的二进制码长度bji
1.2 计算表示二进制码长度bji的二进制码的长度bbji
1.3 预设固定参数LJM,表示该树形结构中各分层节点二进制码长度bbji的最大值所需的二进制比特位数量,作为该树形结构数据节点ID索引路径链路上节点之间的固定比特间隔。
2.根据权利要求1所述的树形结构自增数据节点ID二进制编码方法,其特征在于:
采用
Figure DEST_PATH_IMAGE002
表示向下取整,所述计算第i层中的ID自增编号值ji的二进制码长度bji,具体计算公式表示为:
bji =1 +
Figure DEST_PATH_IMAGE004
log2ji
Figure DEST_PATH_IMAGE006
所述计算表示二进制码长度bji的二进制码的长度bbji,具体计算公式表示为:
bbji= 1 +
Figure 372860DEST_PATH_IMAGE004
log2bji
Figure 978416DEST_PATH_IMAGE006
计算表示二进制码长度bbji的二进制码的长度bbbji,具体计算公式表示为:
bbbji=1 +
Figure 695836DEST_PATH_IMAGE004
log2bbji
Figure 277996DEST_PATH_IMAGE006
所述预设固定参数LJM,具体表示为:
LJM=Max(bbbji)=1+
Figure 357948DEST_PATH_IMAGE004
log2(1+
Figure 118093DEST_PATH_IMAGE004
log2(1+
Figure DEST_PATH_IMAGE008
log2JM
Figure 25874DEST_PATH_IMAGE006
Figure 411725DEST_PATH_IMAGE006
Figure 18286DEST_PATH_IMAGE006
> 0,其中JM为所有层中的数据节点的预计的最大可能个数;采用向上取整的表示形式
Figure DEST_PATH_IMAGE010
,上述参数的具体计算方法为:
Figure DEST_PATH_IMAGE011
采用以上两套方法计算的结果一致。
3.一种树形结构自增数据节点ID路径链二进制编码方法,其特征在于,包括权利要求1或2所述树形结构自增数据节点ID二进制编码方法,还包括下述步骤:
2.1设置系统预设值SYSTEM的内容,作为路径链数据结构的编码头信息;
2.2采用逆序编码、顺序编码或继承编码中的任意一种编码方式对于目标节点ji的访问路径链进行编码;
2.2.1所述逆序编码是指从目标节点逆向朝其各级父节点直至根节点RootNode的方式完成其二进制路径链编码,对于该路径上的每个数据节点,依次先将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置补0;然后,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位;再将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;
2.2.2所述顺序编码是指从根节点RootNode出发向其各级子节点直至目标节点的方式完成其二进制路径链编码,对于该路径上的每个数据节点,依次先将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置补0;然后,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位;再将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;
2.2.3所述继承编码是指从根节点RootNode出发向其各级子节点直至目标节点的方式完成其二进制路径链编码,对于该路径上的当前目标数据节点,先将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置补0;然后,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位;再将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;当前目标节点的二进制编码尾随其父节点的路径二进制编码;即只需对当前节点进行二进制编码,其父节点的编码的传递序列直接从其前驱节点继承;
2.3判断当前层是否还有新增数据节点,若还有新增数据节点,则ID自增编号值ji递增后返回二进制编码步骤1.1,若无新增数据节点,则判断当前层是否为树形结构的最后一层;若为树形结构的最后一层,则结束,否则当前层层数递增后返回二进制编码步骤1.1,直至遍历树形结构的最后一层。
4.根据权利要求3所述的树形结构自增数据节点ID路径链二进制编码方法,其特征在于,所述逆序编码步骤具体包括:
针对新的自增数据节点,对其尾部的LJM个比特位置,编码为LJM个0,表示该自增数据节点编码的结束符;
将ID自增编号值ji二进制化为Bji,将Bji的各个二进制位依次填入倒数第LJM+bji位至倒数第LJM+1位;
将二进制码长度bji二进制化为Bbji,将Bbji的各个二进制位依次填入倒数第LJM+bji+bbji位至倒数第LJM+bji+1位;
计算表示二进制码长度bbji的二进制码的长度bbbji,并将bbbji的值二进制化为Bbbji,若bbbji=LJM,则将Bbbji的各个二进制位自右至左依次填入倒数第LJM+bji+bbji+LJM位至倒数第LJM+bji+bbji+1位;若bbbji<LJM,则在倒数第LJM+bji+bbji+LJM位至倒数第LJM+bji+bbji+LJM-Bbbji位填0;
若i>1,则以上一层父节点FN的序列号置换,遍历树形结构的各个层级,i=i-1, 直至i=1,则结束编码,在头部把系统预设值SYSTEM的内容写入sPrefix个比特位置,sPrefix表示用户自定义的固定长度的二进制前缀。
5.根据权利要求3所述的树形结构自增数据节点ID路径链二进制编码方法,其特征在于,所述顺序编码步骤具体包括:
在头部把系统预设值SYSTEM的内容写入sPrefix个比特位置,sPrefix表示用户自定义的固定长度的二进制前缀;
计算第i层中的ID自增编号值ji的二进制码长度bji,将ji二进制化为Bji
计算表示二进制码长度bji的二进制码的长度bbji,并将bji二进制化为Bbji
计算bbji所需的二进制字长bbbji的值,并将bbji二进制化为Bbbji
依次将Bbbji写入LJM个比特位,如果bbbji<LJM,则在Bbbji的左侧头部补充0,随后在LJM个比特位之后将Bbji写入其后随的bbji个比特位,然后在LJM+bbji个比特位之后将Bji写入其后随的bji个比特位;
若该数据节点没有后续节点,则在尾部写入LJM个0,表示编码结束;
若存在后续节点,遍历所有层级进行编码,i=i+1,直至新增节点的末尾。
6.根据权利要求3所述的树形结构自增数据节点ID路径链二进制编码方法,其特征在于,所述继承编码步骤中,当前节点编码的主体表示为:
FNSHi= FNSHi-1+ *Bbbji(LJM)+Bbji(bbji)+Bji(bji
其中,(.)内的值表示比特位的宽度,+表示比特位的拼接,*表示前面位置补填0;
当前节点最终编码为:
SYSTEM(sPrefix)+ FNSHi+ 0(LJM);
其中,sPrefix表示用户自定义的固定长度的二进制前缀。
7.一种树形结构自增数据节点ID路径链二进制编码方法,其特征在于,包括权利要求3-6任一项所述树形结构自增数据节点ID路径链二进制编码方法,将树形结构当前自增节点ID路径链的二进制编码值作为当前自增节点ID的二进制编码值,即以路径值替代节点值。
8.一种树形结构自增数据节点ID路径链二进制解码方法,其特征在于,用于权利要求3所述的树形结构自增数据节点ID路径链二进制编码方法的解码过程,具体步骤包括:
获取系统预设值SYSTEM内容;
首先,i=1,取出第i=1个间隔位LJM的值,若LJM≠0,则获得数据对象第1级前缀的字长的字长值bbj1,根据所获取的bbj1,在该LJM之后的bbj1位获取数据对象的第1级前缀的字长值bj1
根据所得的bj1的值,提取其序号j1获得其第1级前缀的ID值;若LJM=0,则结束,表示第1级数据节点对象为空;
随后,i=i+1,取出第i+1个间隔位LJM的值,若LJM=0,解码结束;
若LJM≠0,则提取该LJM位二进制的值赋给bbji,根据所获取的bbji,在该LJM之后的bbji位获取数据对象的第i级前缀的字长值bji
根据所得的bji的值,提取其序号ji获得其第i级前缀的ID值,遍历所有层级进行解码,直到LJM=0,解码结束。
9.一种树形结构自增数据节点ID路径链二进制编码系统,其特征在于,包括:树形结构层级及编号选取模块、二进制码计算模块、固定参数预设模块、预设值设置模块、编码模块和迭代判断模块;
所述树形结构层级及编号选取模块用于选取树形结构第i层,以及数据节点在第i层中的ID自增编号值ji
所述二进制码计算模块用于计算第i层中的ID自增编号值ji的二进制码长度bji,计算二进制码长度bji所需的二进制码长度bbji
所述固定参数预设模块用于预设固定参数LJM,表示树形结构中分层节点二进制编码的固定比特间隔;
所述预设值设置模块用于设置系统预设值SYSTEM的内容;
所述编码模块用于采用逆序编码、顺序编码或继承编码中的任意一种编码方式进行编码;
所述逆序编码按当前编码节点所在层逆序至根节点,分别将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置补0,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位,将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;
所述顺序编码从根节点顺序至当前编码节点,分别将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置补0,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位,将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;
所述继承编码是指从根节点RootNode出发向其各级子节点直至目标节点的方式完成其二进制路径链编码,对于该路径上的当前目标数据节点,先将二进制码长度bbji的二进制码从尾至头写入LJM,不足位置补0;然后,将二进制码长度bji的二进制码写入LJM尾侧相邻的bbji个比特位;再将ID自增编号值ji的二进制码写入bbji个比特位尾侧相邻的bji个比特位;当前目标节点的二进制编码尾随其父节点的路径二进制编码;即只需对当前节点进行二进制编码,其父节点的编码的传递序列直接从其前驱节点继承;
所述迭代判断模块用于判断当前层是否还有新增数据节点,若还有新增数据节点,则ID自增编号值ji递增后返回二进制码计算模块,若无新增数据节点,则判断当前层是否为树形结构的最后一层;若为树形结构的最后一层,则结束,否则当前层层数递增后返回二进制码计算模块,直至遍历树形结构的最后一层。
10.一种树形结构自增数据节点ID路径链二进制解码系统,其特征在于,用于权利要求9所述树形结构自增数据节点ID二进制编码系统解码,包括:系统预设值获取模块、间隔位内容提取模块和判断遍历模块;
所述系统预设值获取模块用于获取系统预设值SYSTEM的内容;
所述间隔位内容提取模块用于取出第i=1个间隔位LJM的值,若LJM≠0,则获得数据对象第1级前缀字长的字长值bbj1,根据所获取的bbj1,在该LJM之后的bbj1位获取数据对象的第1级前缀的字长值bj1
根据所得的bj1的值,提取其序号j1获得其第1级前缀的ID值;若LJM=0,则结束,表示第1级数据节点对象为空;
取出第i+1个间隔位LJM的值;
所述判断遍历模块用于判断LJM是否为0,若LJM=0,解码结束;
若LJM≠0,则提取该LJM位二进制的值赋给bbji,根据所获取的bbji,在该LJM之后的bbji位获取数据对象的第i级前缀的字长值bji
根据所得的bji的值,提取其序号ji获得其第i级前缀的ID值,遍历所有层级进行解码,直到LJM=0,解码结束。
CN202011598365.0A 2020-12-30 2020-12-30 树形结构自增数据节点id及其路径链二进制编码方法 Active CN112287642B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011598365.0A CN112287642B (zh) 2020-12-30 2020-12-30 树形结构自增数据节点id及其路径链二进制编码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011598365.0A CN112287642B (zh) 2020-12-30 2020-12-30 树形结构自增数据节点id及其路径链二进制编码方法

Publications (2)

Publication Number Publication Date
CN112287642A CN112287642A (zh) 2021-01-29
CN112287642B true CN112287642B (zh) 2021-06-08

Family

ID=74426278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011598365.0A Active CN112287642B (zh) 2020-12-30 2020-12-30 树形结构自增数据节点id及其路径链二进制编码方法

Country Status (1)

Country Link
CN (1) CN112287642B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113297296B (zh) * 2021-05-31 2022-08-16 西南大学 多样式类型数据的json化处理方法
CN113886433A (zh) * 2021-10-01 2022-01-04 浙江大学 一种层次结构区域检索方法
CN115841094A (zh) * 2023-02-15 2023-03-24 天翼云科技有限公司 一种编码方法、装置、设备、介质及产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1739243A (zh) * 2002-11-15 2006-02-22 西门子公司 用于从索引树中产生比特流的方法
CN103023618A (zh) * 2013-01-11 2013-04-03 北京邮电大学 一种任意码长的极化编码方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101222476B (zh) * 2007-01-08 2010-09-29 华为技术有限公司 一种可扩展标记语言文件编辑器、文件传输方法及系统
US9698830B2 (en) * 2013-02-28 2017-07-04 Intel Corporation Single-bit first error correction
CN104036531B (zh) * 2014-06-16 2017-04-26 西安交通大学 一种基于矢量量化以及二叉查找树的信息隐藏方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1739243A (zh) * 2002-11-15 2006-02-22 西门子公司 用于从索引树中产生比特流的方法
CN103023618A (zh) * 2013-01-11 2013-04-03 北京邮电大学 一种任意码长的极化编码方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DPHI-Tree:一种新型的并行高维主存索引树;郑炜 等;《西北工业大学学报》;20090831;第27卷(第4期);第436-442页 *

Also Published As

Publication number Publication date
CN112287642A (zh) 2021-01-29

Similar Documents

Publication Publication Date Title
CN112287642B (zh) 树形结构自增数据节点id及其路径链二进制编码方法
CN107565973B (zh) 一种结点可扩展的哈夫曼编码的实现方法及电路结构
CN109213820A (zh) 一种实现多种类型的数据库融合使用的方法
JP3865694B2 (ja) 構造化文書の木構造におけるパスの符号化および復号化方法
CN107016071A (zh) 一种利用简单路径特征优化树状结构数据的方法及系统
CN107066551A (zh) 一种树状数据的行式和列式存储方法及系统
CN110060158A (zh) 基于变长编码的智能合约执行方法和装置
CN106649217A (zh) 数据的匹配方法及装置
CN106789898A (zh) 远程数据传输终端、系统及其编码、解码方法
CN101179580B (zh) 一种用于实现WiMAX系统消息编解码的方法
CN108366050A (zh) 一种通用通信协议处理方法
CN105468712A (zh) 一种数据存储兼容方法
CN107317844B (zh) 基于锯齿可解码的最小存储开销的分布式存储方法及系统
KR101044870B1 (ko) 경로 코드를 이용한 xml 문서의 부호화 및 복호화 방법과 장치
CN116208667A (zh) 一种可变长高压缩的比特报文编解码方法
CN103116654B (zh) 一种xml数据节点编码压缩方法
CN116405120A (zh) 一种基于符号序列的csk编码方法
CN108829930B (zh) 三维数字化工艺设计mbd模型的轻量化方法
CN112395286B (zh) 链式数据表连接方法、装置、设备及存储介质
CN100579032C (zh) 性能数据自动化管理系统和方法
CN114385624A (zh) 编码方法、编码查找方法、装置、电子设备及存储介质
CN108446319A (zh) 将数据进行二进制序列化的方法和系统
CN112799607A (zh) 一种根据数据大小分区式存放的数据存储方法
CN107896136B (zh) 一种雷达航迹报文编码方法
KR100952051B1 (ko) 경로 코드를 이용한 xml 문서의 부호화 및 복호화방법과 장치

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
GR01 Patent grant
GR01 Patent grant