acwing840模拟散列表,拉链法(模板)

先建一个槽,用公式计算出每一个数对应的槽t,然后每一个槽下吊链表(所有对应公式答案的数)
注意
增加链表Insert()函数是插在最上面不是插在最下,这样可以节省修改

板子
#include <bits/stdc++.h>

using namespace std;

const int N=100005,MOD=100003;
int h[N],e[N],ne[N],idx=1,n,x;//h是槽,e,ne,idx是链表模板 
char op[4];

void Insert(int x){
	int t=(x%MOD+MOD)%MOD;//防止x%mod后是负数 
	e[idx]=x, ne[idx]=h[t], h[t]=idx++;
}
bool Query(int x){
	int t=(x%MOD+MOD)%MOD;
	for(int i=h[t];i;i=ne[i]){//遍历串内是否有x 
		if(e[i]==x) return true;
	}
	return false;
}
int main() {
	scanf("%d",&n);
	while(n--){
		scanf("%s%d",op,&x);
		if(*op=='I') Insert(x);//插入x 
		else if(Query(x)) printf("Yes\n");//是否有x 
		else printf("No\n");
	}
	return 0;
}


全部评论

相关推荐

06-05 19:46
已编辑
武汉大学 后端
点赞 评论 收藏
分享
05-09 14:45
门头沟学院 Java
点赞 评论 收藏
分享
八股刚起步,看了javaguide,小林coding,还有面渣,感觉面渣是体验最好的,请问只看面渣够用吗,有不完善的需要补吗?
码农索隆:先背最基础的知识,然后理解情景题,现在面试大多数喜欢问情景题,更考验面试者的基础和临场发挥情况
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务