[發明專利]一種數據存儲方法、訪問方法及裝置有效
| 申請號: | 201710795008.5 | 申請日: | 2017-09-06 |
| 公開(公告)號: | CN107622020B | 公開(公告)日: | 2020-09-25 |
| 發明(設計)人: | 蔡遠迪 | 申請(專利權)人: | 網宿科技股份有限公司 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 黃志華 |
| 地址: | 200030 上海市徐匯區*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據 存儲 方法 訪問 裝置 | ||
本發明公開了一種數據存儲方法、訪問方法及裝置,包括:獲取指針數組的第N個指針元素;確定第N個指針元素在待存儲數據的存儲數組集中的對應數組;在第N個指針元素的對應數組的可用存儲空間已滿時,根據存儲規則構建擴展數組;對指針數組中的指針元素進行擴展調整,使指針數組中的最后一個指針元素與擴展數組相對應;將待存儲數據元素依次存入擴展數組。在進行動態擴展時,只需增加存儲數組集中的數組(擴展數組)個數,并對指針數組中的指針元素進行擴展調整,減少了隨機訪問數據結構動態擴展時的資源消耗。
技術領域
本發明涉及計算機技術領域,尤其涉及一種數據存儲方法、訪問方法及裝置。
背景技術
隨著計算機技術的出現和興起,不同類型的數據存儲方法也應運而生。這些數據存儲方法采用各種各樣的數據結構,比如數組,鏈表,哈希表,對數據進行存儲。對于信息爆炸的21世紀,如何高效地存儲、訪問數據將是人們不停探索的方向。
現有的數據存儲方法所采用的數據結構,按訪問方式大致可分為隨機訪問和順序訪問兩種。對于隨機訪問的數據結構,如圖1(a)所示,為一種現有的數組結構示意圖,其中每一個小方格代表存儲的一個數據元素,數組所占用的存儲空間為一個連續的存儲空間,數組中的數據元素按照存入順序依次排列,如圖1(a)中數據元素2便是在數據元素1之后被存入數組。訪問數組時,根據目的數據元素的地址確定其在數組中的位置,可直接從數組中讀取到目的數據元素,可見,對于如數組這種隨機訪問的數據結構,可以在常數時間內讀取數組中任一數據元素。而對于順序訪問的數據結構,如圖1(b)所示,為一種現有的鏈表結構示意圖,每個數據元素附加一個位置元數據,用于指向該數據元素邏輯上的下一個數據元素。訪問鏈表中的數據元素時,需要從第一個數據元素開始遍歷到所需數據元素,故順序訪問的訪問用時和數據元素的位置呈線性關系。顯然,隨機訪問訪問用時更加穩定。
然而,雖然隨機訪問較順序訪問有上述優勢,但是隨機訪問的數據結構的存儲方式卻存在一定的弊端。在存儲數據時,往往會遇到存儲空間不足的情況,當原有存儲空間無法容納需要存儲的數據時,就需要數據結構能夠支持動態擴展以擴大所占用的存儲空間。對于隨機訪問的數據結構,數據元素在存儲空間中往往是連續存儲的,在進行動態擴展時,需要先申請一塊更大的存儲空間(一般為現有存儲空間的兩倍),之后,復制現有存儲空間中存儲的數據至新申請的存儲空間中,再釋放原來的存儲空間。這種動態擴展方式需要對存儲的全部數據都進行復制和轉移,需要較長的時間消耗和較高的資源消耗,而且,進行動態擴展和不進行動態擴展時所消耗的資源差異巨大,影響了數據存儲、訪問的穩定性。
發明內容
本發明提供一種數據存儲方法、訪問方法及裝置,用以解決現有技術中存在隨機訪問數據結構的動態擴展資源消耗巨大的問題。
本發明實施例提供一種數據存儲方法,包括:
獲取待存儲數據的指針數組的第N個指針元素;
確定所述第N個指針元素在所述待存儲數據的存儲數組集中的對應數組;
在所述第N個指針元素的對應數組的可用存儲空間已滿時,根據存儲規則構建擴展數組;所述存儲規則用于規定所述存儲數組集中各數組可用存儲空間的大??;
對所述指針數組中的指針元素進行擴展調整;經過擴展調整后的所述指針數組中的最后一個指針元素與所述擴展數組相對應;
將待存儲數據元素依次存入所述擴展數組。
可選的,還包括:
在所述第N個指針元素的對應數組的可用存儲空間未滿時,將所述待存儲數據元素順序存儲至所述第N個指針元素的對應數組中。
可選的,所述存儲規則包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于網宿科技股份有限公司,未經網宿科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710795008.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種頁面測試方法及裝置
- 下一篇:一種緩存數據的方法及裝置
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





