(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 表的大...