1739: 查找-哈希表
金币值:2
定数:11
时间限制:1.000 s
内存限制:128 M
正确:1
提交:1
正确率:100.00% 命题人:
题目描述
本题哈希表的构造采用除留余数法,处理冲突的方法采用线性探测法。
#include <stdio.h> #define NULLKEY 0 #define HASHSIZE 20 typedef struct data{ int key; } HashTable[HASHSIZE]; void InsertHash(HashTable &H,int key); int SearchHash(HashTable H,int key); void InitHashTable(HashTable &H) { int i; for(i=0; i<HASHSIZE; i++) H[i].key=NULLKEY; } /*散列函数*/ int Hash(int key) { return key % 19; /* 除留余数法 */ } int main(void){ HashTable H; int n,i,key,result; InitHashTable(H); scanf("%d",&n); for(i=1;i<=n;i++){ scanf("%d",&key); InsertHash(H,key); } scanf("%d",&key); result=SearchHash(H,key); if (result==-1) printf("%d:fail",key); else printf("%d:%d",key,result); return 0; } /*仅提交以下代码*/ void InsertHash(HashTable &H,int key) { } int SearchHash(HashTable H,int key) {//查找成功返回对应下标,否则返回-1 }
输入格式
第1行输入一个整数n,表示待插入到散列表中的整数个数。
第2行输入n个正整数。
第3行输入一个待查找的整数
第2行输入n个正整数。
第3行输入一个待查找的整数
输出格式
共1行,显示在散列表中查找关键字的结果,若查找成功,输出该关键字及其所在的下标,否则显示fail。
输入样例 复制
12
12 67 56 16 25 37 22 29 15 47 48 34
37
输出样例 复制
37:19