#include<stdio.h>
#include<string.h>
#define N 200003
#define null 0x3f3f3f3f //定义null
int h[N];
//find函数来找坑位
int find(int x){
int k = (x % N + N ) % N;//离散化
//找坑位(坑位不能有其他人,或者坑位就是自己,那么就直接返回当前的k)
while(h[k] != null && h[k] != x){
k ++ ;
if(k == N) k = 0;//如果找到尾,还没找到空位,就再重头找。
}
return k;
}
int main(){
int n;scanf("%d",&n);
memset(h,0x3f,sizeof h);//初始化,坑位都初始化为空。
while(n -- ){
char op[2];
int x;
scanf("%s%d",op,&x);
if(op[0] == 'I') h[find(x)] = x;//找到x的坑位,蒋x放进去
else h[find(x)] == null ? puts("No") : puts("Yes");//x的坑位为空,说明没出现过,反之,出现过。
}
return 0;
}```
模拟散列表
于 2021-10-23 21:38:54 首次发布