Codevs 1230 元素查詢 手寫雜湊表

2021-09-07 11:06:16 字數 1021 閱讀 3691

題目連線:

說白了就是要我們自己手寫乙個雜湊表的資料結構來實現加入和查詢功能。map也能直接過(我第一次寫就是用map騙ac的)

提一下個人理解的雜湊表的實現(以下說的是線性定址法)。假設有誤還請各位大神不吝不吝賜教

用乙個陣列模擬雜湊表,函式f(x)=數字x在雜湊表**現的下標的最小可能值。一般f(x)=x mod t,t就是雜湊表的長度

以下就是乙個雜湊表的演示樣例,假設遍歷雜湊表時指標走出了雜湊表的終點。就進入起點又一次遍歷

對於每次向雜湊表中加入乙個數x,從下標f(x)開始查詢,以上文所說的遍歷方式查詢,直到找到裝有x這個數的雜湊表元素。返回查詢成功(雜湊表中有x這個數)。假設遍歷過程中遇到了空的雜湊表的乙個元素就返回查詢失敗(雜湊表中沒有x這個數)。

插入元素的過程類似於查詢。向雜湊表中插入數字x時,首先從下標f(x)開始查詢,直到找到第乙個為0的雜湊表元素,將數字x插入進去。

以下是此題**:

#include #include #include #include #include #define maxn 1000008

#define mod 1000007

using namespace std;

int hashtable[maxn];

void update(int x) //將數字x增加雜湊表

if(hashtable[x]!=num)

else return;

}}bool query(int x) //查詢雜湊表中是否有數字x

else return true;

}}int main()

for(int i=1;i<=m;i++)

return 0;

}



CODEVS 1230 元素查詢

給出n個正整數,然後有m個詢問,每個詢問乙個整數,詢問該整數是否在n個正整數中出現過。第一行兩個整數 n 和m。第二行n個正整數 1 n 100000 第三行m個整數 1 m 100000 一共m行,若出現則輸出yes,否則輸出no 4 2 2 1 3 4 1 9yes no所有資料都不超過10 8...

CODEVS 1230 元素查詢 雜湊表

codevs 題目描述 description 給出n個正整數,然後有m個詢問,每個詢問乙個整數,詢問該整數是否在n個正整數中出現過。輸入描述 input description 第一行兩個整數 n 和m。第二行n個正整數 1 n 100000 第三行m個整數 1 m 100000 輸出描述 out...

CODE VS 1230 元素查詢 二分

題目傳送門 這是一篇無聊的水部落格,請各位大佬慎入qwq。很顯然,這題只要是懂一點點基礎知識的小學生都會做的題目,但是我們的重點不在這道題上。今天講課時講到了lower bound和upper bound函式,於是就去學了一發。這兩個函式都包含在algorithm庫里,用法也是挺簡單的 lower ...