哈希表(链地址法处理冲突)swust oj#1012

Ethel ·
更新时间:2024-11-10
· 913 次阅读

hash表一般都采用取余构造(将一个数对n取余然后根据余数来查找是否存在该数),当两个数的余数相同时仅仅凭借余数作为下标来查找就会发生错误即hash冲突,那么链地址法其实就是将余数相同的数用链表储存起来,那么查找时就遍历余数对应的链表即可(类似邻接表)
题目出处

#include #include using namespace std; #define int long long vector m[1005];//用二维数组代替链表 signed main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n,h; cin>>n>>h; for(int i=0;i>c; m[c%h].push_back(c);//模拟尾插法 } int t; cin>>t; int k=t%h; int ans=0,flag=0; for(int i=0;i<m[k].size();i++){ ans++; if(m[k][i]==t){ flag=1; break; } } if(flag==0) cout<<-1; else cout<<k<<","<<ans; }
作者:chineseherofeng



oj 哈希表 哈希 地址

需要 登录 后方可回复, 如果你还没有账号请 注册新账号