[发明专利]一种树结构资源存储、查询的方法和装置有效
| 申请号: | 201410834814.5 | 申请日: | 2014-12-26 |
| 公开(公告)号: | CN105786931B | 公开(公告)日: | 2019-06-04 |
| 发明(设计)人: | 冯孝光;王庆磊;张国波 | 申请(专利权)人: | 北京神州泰岳软件股份有限公司 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22 |
| 代理公司: | 北京市隆安律师事务所 11323 | 代理人: | 权鲜枝;吴昊 |
| 地址: | 100089 北京市海淀区万*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 种树 结构 资源 存储 查询 方法 装置 | ||
1.一种树结构资源存储的方法,其特征在于,包括:
通过前序遍历算法遍历树结构资源;
将遍历出的各个资源及其各子资源的事件数据按照前序遍历的顺序依次存储在一个事件列表中;并在一个位置哈希表中记录各个资源在所述事件列表中的起始位置和事件数量;其中所述事件数量为各个资源自身的事件数量与其各子资源的事件数量之和;
其中,所述将遍历出的各个资源及其各子资源的事件数据按照前序遍历的顺序依次存储在一个事件列表中;并在一个位置哈希表中记录各个资源在所述事件列表中的起始位置和事件数量包括:
前序遍历树结构资源时,将依次遍历出的当前资源的事件数据和其各子资源的事件数据添加到所述事件列表的尾部;
在所述位置哈希表中记录该当前资源的起始位置和事件数量;
如果遍历的当前资源存在子资源,则在遍历完其各子资源时,使用当前资源的事件数量加上其各子资源的事件数量来更新所述位置哈希表中该当前资源的事件数量。
2.根据权利要求1所述的方法,其特征在于,在通过前序遍历算法遍历树结构资源之前,所述方法还包括:
建立一个空的事件列表,用于按照前序遍历的顺序依次存储各个资源及其各子资源的事件数据;
建立一个空的位置哈希表,该位置哈希表的键名为各个资源的ID,键值为两位的整型数组,用于分别记录各个资源在所述事件列表中的起始位置和事件数量;
将树结构资源的事件数据加载到缓存中。
3.一种树结构资源存储的装置,其特征在于,包括:
前序遍历模块,用于通过前序遍历算法遍历树结构资源;
存储单元,用于将遍历出的各个资源及其各子资源的事件数据按照前序遍历的顺序依次存储在一个事件列表中,并在一个位置哈希表中记录各个资源在所述事件列表中的起始位置和事件数量;其中所述事件数量为各个资源自身的事件数量与其各子资源的事件数量之和;
所述存储单元包括:
数据添加模块,用于前序遍历树结构资源时,将依次遍历出的当前资源的事件数据和其各子资源的事件数据添加到所述事件列表的尾部;
位置记录模块,用于在所述位置哈希表中记录该当前资源的起始位置和事件数量;
数量更新模块,用于如果遍历的当前资源存在子资源,则在遍历完其各子资源时,使用当前资源的事件数量加上其各子资源的事件数量来更新所述位置哈希表中该当前资源的事件数量。
4.根据权利要求3 所述的装置,其特征在于,所述装置还包括:
建表模块,用于建立一个空的事件列表,以按照前序遍历的顺序依次存储各个资源及其各子资源的事件数据;以及建立一个空的位置哈希表,该位置哈希表的键名为各个资源的ID,键值为两位的整型数组,用于分别记录各个资源在所述事件列表中的起始位置和事件数量;
加载模块,用于在通过前序遍历算法遍历树结构资源之前,将树结构资源的事件数据加载到缓存中。
5.一种树结构资源查询的方法,其特征在于,包括:
获取预先存储的树结构资源的事件列表和位置哈希表,其中,所述事件列表中存储有通过前序遍历算法遍历树结构资源时依次遍历出的各个资源及其各子资源的事件数据,所述位置哈希表中记录有各个资源在所述事件列表中的起始位置和事件数量;所述事件数量为各个资源自身的事件数量与其各子资源的事件数量之和;
在所述位置哈希表中查询待查询资源在所述事件列表中的起始位置和事件数量;
根据查询出的起始位置和事件数量,在所述事件列表中截取出该待查询资源及其各子资源的事件数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京神州泰岳软件股份有限公司,未经北京神州泰岳软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410834814.5/1.html,转载请声明来源钻瓜专利网。





