0
点赞
收藏
分享

微信扫一扫

模拟散列表

老牛走世界 2022-05-04 阅读 76

1,哈希表也叫散列表

2,哈希表是一种数据结构

3,散列表是数组结构

哈希表:1,存储结构(1,开放寻址法;2,拉链法);2,字符串哈希方式。


一,拉链法

主要问题----哈希冲突:N一般取质数,减小哈希冲突概率。

#include <bits/stdc++.h>
using namespace std;
const int N=100003;
int h[N],e[N],ne[N],idx;
void insert(int x)
{
	int k=(x%N+N)%N;
	
	e[idx]=x;
	ne[idx]=h[k];
	h[k]=idx++;
}
bool find(int x)
{
	int k=(x%N+N)%N;
	
	for(int i=h[k];i!=-1;i=ne[i])
		if(e[i]==x)return true;
		
	return false;
}
int main()
{
	int n;
	cin>>n;
	memset(h,-1,sizeof(h));
	while(n--)
	{
		int x;
		string s;
		cin>>s;
		cin>>x;
		if(s=="I")
		{
			insert(x);
		}
		else 
		{
			if(find(x))cout<<"Yes"<<endl;
			else cout<<"No"<<endl;
		}
	}
}
举报

相关推荐

0 条评论