求助大佬
题目链接 模拟散列表
运行超时
错误的代码:
#include<iostream>
#include<cstring>
using namespace std;
const int N=20003,null=0x3f3f3f3f;
int n;//定义操作数n
char op[2];
int h[N];
void insert(int x)
{
int k=(x%N+N)%N;
//筛除冲突且被占的位置
while(h[k]!=null&&h[k]!=x)
{
k++;
if(k==N)k=0;
}
h[k]=x;
return ;
}
bool find(int x)
{
int k=(x%N+N)%N;
while(h[k]!=null&&h[k]!=x)
{
k++;
if(k==N)k=0;
}
if(h[k]==x)return true;
return false;
}
int main()
{
cin>>n;//读入操作次数
int x;
memset(h,0x3f,sizeof h);//初始化h数组
while(n--)
{
scanf("%s%d",op,&x);
if(*op=='I')insert(x);
else {
if(find(x))puts("Yes");
else puts("No");
}
}
return 0;
}
哈希表
提问于12天前
843