[發明專利]一種樹結構資源存儲、查詢的方法和裝置有效
| 申請號: | 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.szxzyx.cn/pat/books/201410834814.5/1.html,轉載請聲明來源鉆瓜專利網。





