簡單雜湊表實現

2021-08-20 05:48:28 字數 1009 閱讀 4385

雜湊表定義:

雜湊表又稱雜湊表,是根據關鍵碼值(key value)而直接訪問的資料結構。它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式

,存放記錄的陣列

叫做雜湊表。

雜湊表既有陣列的特點(定址容易),又有鍊錶的特點(方便插入,刪除)。

雜湊表結構示意圖:

下面編寫乙個簡單例項:

1.頭的定義:

typedef struct hsstruct myhash;

#define hash_size 64

myhash* hasharr[hash_size];

/*雜湊函式定義,產生key值*/

unsigned int hash_key( myhash* h)

/*

資料新增

1.判斷新增的資料儲存的指標是否有myhash資料

2.在鍊錶按照小到大新增

*/void l_add(myhash* h)

elseelse

}h2prev->next = h;

h->prev = h2prev;

h->next = (myhash*) 0;

} }}

/*

刪除資料

1.先判斷,並刪除第乙個資料

2.判斷,並刪除中間位置(非頭)資料

3.判斷非尾部資料,並進行指標連線

*/void l_remove(myhash* h)

都是我學習的過程,如有錯誤,多多指教。

雜湊表 雜湊表 C語言簡單實現

本文參考自 大話資料結構 通過某個函式f計算出記錄的儲存位置,而不需要通過比較,這就是一種新的儲存技術 雜湊技術。雜湊技術是在記錄的儲存位置和它的關鍵字之間建立乙個確定的對應關係f,使得每個關鍵字key對應乙個儲存位置f key 在查詢時,根據這個確定的對應關係找到給定值key的對映f key 若查...

雜湊表的簡單實現

下面這個雜湊表的實現來自k r,很經典。在其他場景中遇到的實現更複雜,基本原理不變,只是在hash演算法,或者在快速查詢上做了優化。include include 具有相同hash值構成的鍊錶 struct nlist define hashsize 101 桶的大小 static struct n...

雜湊表(雜湊表)的實現

雜湊函式直接用key size的形式,size為雜湊表的大小。衝突處理採用平方探測法,為保證可以探測到整個雜湊表空間,雜湊表大小設定為4k 3形式的素數。當雜湊表中的元素過多時會造成效能下降,這時應該倍增雜湊表的大小,重新計算原來雜湊表中每個元素在新的雜湊表中的位置。雜湊表的實現 hashtable...