//采用開(kāi)放定值法構(gòu)造散列表的類型
#define M 997
typedef struct {
KeyType key;
DataType data;
}Nodetype;
typedef Nodetype HashTable[M];
//假設(shè)散列函數(shù)采用除余法
int h(KeyType k, int m) {
return k % m;
}
//采用線性探查法的散列表查找算法
int HashSearchl(HashTable HT, Keytype k, int m) {
int d, temp;
d = h(k, m);
temp = d;
while (HT[d].key != -32768) {//散列地址中的key不為空
if (HT[d].key == k)
return d;
else
d = (d + 1) % m;
if (d == temp)//查找一周扔無(wú)空位置
return -1;
}
return d;//遇到空單元,查找失敗
}
//在散列表上插入一個(gè)結(jié)點(diǎn)
int HashInsertl(HashTable HT, Nodetype s, int m) {
int d;
d = HashSearchl(HT, s.key, m);//查找插入位置
if (d == -1) return -1;//表滿
else {
if (HT[d].key == s.key)//表中已有該結(jié)點(diǎn)
return 0;
else {
HT[d] = s;
return 1;
}
}
}
線性探查法解決沖突的查找和插入算法
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。