//哈希函数:除留余数法
//处理冲突:链地址法
using namespace std
const int N=10
struct Node{
int num
Node *next
}
struct HashTable{
Node *element[N]
int countn
}
HashTable *p
void InsertHashTable(int key)
int Search(int key)
int main()
{
int i,n
int a[N]={12,45,2,6,78,9,0,1,15,18}
p=new HashTable()
for(i=0
p->element[i]=new Node()
for(i=0
InsertHashTable(a[i])
while(scanf("%d",&n)!=EOF)//可输入待查找元素
{
printf("%d\n",Search(n))
}
return 0
}
void InsertHashTable(int key)
{
Node *q
q=new Node()
q->num=key
q->next=p->element[key%N]->next
p->element[key%N]->next=q
}
int Search(int key)
{
Node *q
q=new Node()
q=p->element[key%N]->next
while(q!=NULL)
{
if(q->num==key)
return key%N
q=q->next
}
return -1
}