雜湊錶鏈位址法基本思想是將相同雜湊位址的元素放在同乙個單鏈表中,即稱同義詞鍊錶。例如此時我們設乙個雜湊函式h(key)=key%n,則可以定義乙個一維陣列,大小為n,陣列元素對應關鍵字模n所得的數字。
如下圖:n為13,各關鍵字模13後插入對應值的表中。
typedef
struct hashnode
hashnode,
*hashbit;
data存元素值,next指向衝突元素位址。
void
inithash
(hashbit h,
int n)
//初始化
}void
inserthash
(hashbit h,
int x,
int n)
//插入
void
searchhash
(hashbit h,
int x,
int n)
//查詢
}printf
("無此元素");
return;}
void
deletehash
(hashbit h,
int x,
int n)
//刪除
}printf
("無此元素\n");
return;}
void
printhash
(hashbit h,
int n)
//輸出
printf
("\n");
}}
int
main()
else
if(m==2)
else
if(m==3)
else
if(m==4)
else
if(m==5)
return0;
}}
拿開頭的為例輸入:
雜湊錶鏈位址法解決衝突
問題描述 為了美麗的校園計畫,學校決定改進排隊制度,比如說給飯卡充錢等 給每個人乙個rp值,這個rp值決定這個人來了之後要排的位置,如果當前位置已經有人,那麼從這個位置以後的人後移一位,這個人插進去,如果沒有人的話就直接排到這個位置上去。現在已知按時間從前到後來的人的名字和rp值,求按排隊順序輸出排...
雜湊(hash)表 鏈位址法解決衝突
首先要感謝下面博主 mark 一下 說的很清楚,也能直接用,只是做了一點點小改進 將衝突的hash值存放到了鏈尾 增加了remove函式,方便刪除不要的節點 此方法中,乙個key至只對應乙個value lookup函式 定義乙個查詢根據key查詢結點的方法,首先是用hash函式計算頭位址,然後根據頭...
雜湊表鏈結位址法實現
說明 0 7相對於陣列下標,每個陣列元素下標又相當於乙個單鏈表。ifndef hash h define hash h define hashsize 10 typedef struct node node class hashtable endif hash h include pch.h inc...