Hash表

Hahs表存储结构

字符串Hash

1.1拉链法

案例代码如下:

#include<iostream>
#include<cstring>
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;
? ?scanf("%d",&n);
? ?
? ?//清空槽
? ?memset(h,-1,sizeof h);
? ?
? ?while(n --)
? ?{
? ? ? ?char op[2];
? ? ? ?scanf("%s%d",op,&x);
? ? ? ?
? ? ? ?if(*op == 'I') insert(x);
? ? ? ?else
? ? ? ?{
? ? ? ? ? ?if(find(x)) puts("yes")
? ? ? ? ? ? else
? ? ? ? ? ?{
? ? ? ? ? ? ? ?puts("No");
? ? ? ? ? ?}
? ? ? ?}
? ?}
? ?return 0;
}

?

文章链接: /22564.html

文章标题:Hash表

文章版权:云服务器租用科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
建站教程

Sequence_table代码展示

2023-7-31 17:03:20

建站教程投稿分享

安装Netbox

2023-8-18 15:07:58

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧

云服务器租用科技 - 最新云主机促销服务器租用优惠

http://www.vxiaotou.com