散列表又稱為哈希表(Hash Table), 是為了方便查找而生的數(shù)據(jù)結(jié)構(gòu)。關(guān)于散列的表的解釋,我想引用維基百科上的解釋,如下所示:
散列表(Hash table,也叫哈希表),是根據(jù)鍵(Key)而直接訪問在內(nèi)存存儲(chǔ)位置的數(shù)據(jù)結(jié)構(gòu)。也就是說,它通過計(jì)算一個(gè)關(guān)于鍵值的函數(shù),將所需查詢的數(shù)據(jù)映射到表中一個(gè)位置來訪問記錄,這加快了查找速度。這個(gè)映射函數(shù)稱做散列函數(shù),存放記錄的數(shù)組稱做散列表。
散列表的創(chuàng)建就是將Value通過散列函數(shù)和處理散列key值沖突的函數(shù)來生成一個(gè)key, 這個(gè)key就是Value的查找映射,我們就可以通過key來訪問Value的值。本篇博客我們就來好好的聊一下散列表的實(shí)現(xiàn),當(dāng)然主要還是構(gòu)建散列函數(shù)還有解決沖突的函數(shù),下方我們先給出散列函數(shù)為“除留取余法”和處理沖突的線性探測(cè)發(fā)的原理圖,然后再給出面向?qū)ο蟮膶?shí)現(xiàn),最后在給出相應(yīng)的代碼實(shí)現(xiàn)。