[发明专利]一种前缀树存储方法、装置、存储介质和计算机设备有效
申请号: | 201811631830.9 | 申请日: | 2018-12-29 |
公开(公告)号: | CN111382086B | 公开(公告)日: | 2022-07-29 |
发明(设计)人: | 李文博;吴义谱;张炎泼 | 申请(专利权)人: | 贵州白山云科技股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京名华博信知识产权代理有限公司 11453 | 代理人: | 白莹;苗源 |
地址: | 550003 贵州省贵阳市*** | 国省代码: | 贵州;52 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 前缀 存储 方法 装置 介质 计算机 设备 | ||
本发明提供一种前缀树存储方法、装置、存储介质和计算机设备。涉及数据存储领域,解决了前缀树占用存储空间大的问题。该方法包括:将前缀树中的每个原始前缀树节点均拆分为多个第一级容量大小的前缀树节点,为每个前缀树节点分配一个第一存储单元,所述第一存储单元存储所述前缀树节点的子节点情况;为每个前缀树节点分配一个第二存储单元,所述第二存储单元存储所述前缀树节点的第一个子节点的编号;创建第三存储单元存储所述前缀树节点间裁剪掉的节点的数量。本发明的技术方案适用于前缀树存储,实现了低内存成本的前缀树存储结构。
技术领域
本发明涉及数据存储领域,尤其涉及一种前缀树存储方法、装置、存储介质和计算机设备。
背景技术
现有的树型数据结构一般都以方便使用为第一目的,而忽略了在使用中付出的成本问题。而像树型数据结构这样的基本的数据结构在平时的项目中使用频率会比较高,占用的存储空间较大,导致日常使用树型数据结构成本过高,成本的积累就会成为整个项目的短板。
发明内容
本发明旨在解决上面描述的问题。
根据本发明的第一方面,提供了一种前缀树存储方法,包括:
将前缀树中的每个原始前缀树节点均拆分为多个第一级容量大小的前缀树节点,为每个前缀树节点分配一个第一存储单元,所述第一存储单元存储所述前缀树节点的子节点情况;
为每个前缀树节点分配一个第二存储单元,所述第二存储单元存储所述前缀树节点的第一个子节点的编号;
创建第三存储单元存储所述前缀树节点间裁剪掉的节点的数量。
优选的,所述第一级容量的大小为N bit,所述第一级存储单元的大小为2Nbit,所述第二级存储单元和所述第三级存储单元的大小均为为log2(2*n)bit,其中n为叶子节点数量。
优选的,所述第一级容量的大小为4bit,n为2^15,所述第一存储单元、所述第二存储单元及所述第三存储单元的大小均为2byte。
优选的,为每个前缀树节点分配一个第二存储单元的步骤之前,还包括:
从所述前缀树的根节点开始,为所述前缀树中的各个前缀树节点进行广度遍历编号。
优选的,每个前缀树节点的第一存储单元、第二存储单元和第三存储单元构成一个元素,所述前缀树的全部前缀树节点的元素构成中间节点存储数组,通过所述中间节点存储数据存储所述前缀树的中间节点信息。
根据本发明的又一方面,提供了一种前缀树存储装置,包括:
第一存储单元管理模块,用于将前缀树中的每个原始前缀树节点均拆分为多个第一级容量大小的前缀树节点,为每个前缀树节点分配一个第一存储单元,所述第一存储单元存储所述前缀树节点的子节点情况;
第二存储单元管理模块,用于为每个前缀树节点分配一个第二存储单元,所述第二存储单元存储所述前缀树节点的第一个子节点的编号;
第三存储单元管理模块,用于创建第三存储单元存储前缀树节点间裁剪掉的节点的数量。
优选的,该装置还包括:
编号模块,用于从所述前缀树的根节点开始,为所述前缀树中的各个前缀树节点进行广度遍历编号。
优选的,所述第一级容量的大小为N bit,所述第一级存储单元的大小为2Nbit,所述第二级存储单元和所述第三级存储单元的大小均为log2(2*n)bit,其中n为叶子节点数量,该装置还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于贵州白山云科技股份有限公司,未经贵州白山云科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811631830.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种预制方桩模具
- 下一篇:一种分散剂及合成方法、润滑剂及其制备方法