一般雜湊 拉鍊法

2021-10-08 02:26:34 字數 915 閱讀 8314

(1).拉鍊法

模板(一般雜湊 —— 模板題 acwing 840. 模擬雜湊表)

int e[n],ne[n],h[n],idx;

// 向雜湊表中插入乙個數

void insert(int x)

// 在雜湊表中查詢某個數是否存在

bool find(int x)

/* memset(h,-1,sizeof -1);

*/

840. 模擬雜湊表

維護乙個集合,支援如下幾種操作:

「i x」,插入乙個數x;

「q x」,詢問數x是否在集合**現過;

現在要進行n次操作,對於每個詢問操作輸出對應的結果。

輸入格式

第一行包含整數n,表示運算元量。

接下來n行,每行包含乙個操作指令,操作指令為」i x」,」q x」中的一種。

輸出格式

對於每個詢問指令「q x」,輸出乙個詢問結果,如果x在集合**現過,則輸出「yes」,否則輸出「no」。

每個結果佔一行。

資料範圍

1≤n≤105

−109≤x≤109

輸入樣例:

5i 1

i 2i 3

q 2q 5

輸出樣例:

yesno

#include #include using namespace std;

const int n=100003;

int e[n],ne[n],h[n],idx;

void insert(int x)

bool find(int x)

return false;

}int main()

else

}return 0;

}

一般雜湊 開放選址法

2 開放選址法 茅坑法 模板 一般雜湊 模板題 acwing 840.模擬雜湊表 const int n,null 0x3f3f3f3f int h n 如果x在雜湊表中,返回x的下標 如果x不在雜湊表中,返回x應該插入的位置 int find int x return t acwing840.模擬...

雜湊拉鍊法(雜湊桶)

昨天寫了雜湊的開放定址法的部落格,今天我們要說的是拉鍊法,還有乙個名字叫雜湊桶。雜湊桶要做的就是,之前我們用的開放定址法,通過將資料對映到陣列中來實現雜湊。這裡每個陣列的位置只能存放乙個資料,如果衝突的話會繼續往下找找到空的位置然後放進去,但是其實大家都能感覺出來上乙個 很簡單,也很扯,感覺實現起來...

雜湊表(拉鍊法)

開雜湊法又叫鏈位址法 開鏈法 開雜湊法 首先對關鍵碼集合用雜湊函式計算雜湊位址,具有相同位址的關鍵碼歸於同一子集合,每乙個子集合稱為乙個桶,各個 桶中的元素通過乙個單鏈表鏈結起來,各鍊錶的頭結點儲存在雜湊表中。設元素的關鍵碼為37,25,14,36,49,68,57,11,雜湊表為ht 12 表的大...