[發明專利]適用于存儲空間受限的設備的通訊錄防重構建方法有效
| 申請號: | 201910906677.4 | 申請日: | 2019-09-24 |
| 公開(公告)號: | CN110688380B | 公開(公告)日: | 2023-02-03 |
| 發明(設計)人: | 李立亞;吳麗;閭立新 | 申請(專利權)人: | 無錫科技職業學院 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22 |
| 代理公司: | 無錫盛陽專利商標事務所(普通合伙) 32227 | 代理人: | 顧吉云;黃瑩 |
| 地址: | 214028 *** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 適用于 存儲空間 受限 設備 通訊錄 構建 方法 | ||
本發明提供適用于存儲空間受限的設備的通訊錄防重構建方法,其可以在有限的內存中高效率運行,且算法簡單易懂、復雜度低,易于實現。本發明技術方案中,基于哈希表結構構建主表和從表,聯系人姓名與其關聯數據通過互相索引形成關聯;在加入新的數據到主表、從表時就可以檢測到重復,可以用于從不同的源頭合并通訊錄。加入通信錄數據時,利用快速HASH算法計算1次哈希碼,再用哈希碼模上哈希表的基本容量,計算出數據地址索引的值,如果索引相同,再比較判斷數據是否重復。
技術領域
本發明涉及計算機數據處理技術領域,具體為適用于存儲空間受限的設備的通訊錄防重構建方法。
背景技術
現有技術中,對于通訊錄的處理,在數據存儲時,大多是不做防重處理,而是在后續的計算的時候,對參與計算的通訊錄數據做防重處理。但是,在基于如單片機等存儲空間有限的設備上進行開發的時候,在存儲的時候,就需要進行防重處理,但是現有的防重方法大多針對存儲空間不受限的設備進行設計的,其對存儲空間的使用方式,不適用于存儲空間有限的設備,在單片機等存儲空間有限的設備上應用的時候,會導致運行效率變差。
發明內容
為了解決現有的通訊錄防重方法運行于存儲空間有限的設備上會發生運行效率變差的問題,本發明提供適用于存儲空間受限的設備的通訊錄防重構建方法,其可以在有限的內存中高效率運行,且算法簡單易懂,易于實現。
本發明的技術方案是這樣的:適用于存儲空間受限的設備的通訊錄防重構建方法,其特征在于,其包括以下步驟:
S1:把所有的需要添加的通訊錄數據讀入設備的內存中;
S2:根據所述通訊錄數據中包含數據種類n_Class,確定需要建立通訊錄哈希表的數量n_Directory;每一個所述通訊錄哈希表中以其對應種類的數據作為關鍵碼,所述關鍵碼以外的數據作為關聯數據、以關聯數據地址的形式存儲在該表中;
即:n_Class等于n_Directory,且n_Directory、n_Class都為正整數;
S3:構建n_Directory個所述通訊錄哈希表;
在每一個所述通訊錄哈希表中,每一行的列元素包括:占用標志、數據域、鏈索引;
所述占用標志的字段用來設置使用標志,表示該記錄是否已經被使用;
所述數據域的字段用來存放實際數據,所述實際數據包括:關鍵碼數據字段、關聯數據地址字段;
所述關聯數據地址字段存儲了在另外的關聯通訊錄哈希表中的索引地址,該索引地址存儲了與所述關鍵碼設置了索引關系的其他種類的數據;
所述關鍵碼為聯系人姓名的所述通訊錄哈希表設置為主表,其他種類的所述通訊錄哈希表設置為從表;
在所述主表中,所述關鍵碼數據字段和所述關聯數據地址字段的數量關系為:1:Num,其中Num為自然數,且Num≥(n_Class-1);所述主表中的所述關聯數據地址字段中,保存了所述關鍵碼以外的其他所有種類的關聯數據的索引信息,其中同一種類的所述關聯數據地址字段的數量大于等于1;
在所述從表中,所述關鍵碼數據字段和所述關聯數據地址字段的數量關系為:1:1;所述從表中的所述關聯數據地址字段中,只保存所述主表的關鍵碼的地址;
所述鏈索引的字段用來支撐拉鏈法處理沖突,當多條信息需占用同一記錄位置時,該字段用來記錄下一條記錄的索引;
S4:初始化所述通訊錄哈希表長度為N+N*y%;
其中,N為哈希表的基本容量,N為正整數;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于無錫科技職業學院,未經無錫科技職業學院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910906677.4/2.html,轉載請聲明來源鉆瓜專利網。





