1 #define SIZE 1000 //定义Hash table的初始大小
2 struct HashArray
3 {
4 int key;
5 int count;
6 struct HashArray* next;
7 }Hash[SIZE]; //主函数中需要初始化
8 void addHash(int num) //在Hash table中添加数据
9 {
10 int temp=abs(num%SIZE); //添加的数据可包括负数
11 if(Hash[temp].key==0)
12 {
13 Hash[temp].key=num;
14 Hash[temp].count++;
15 }else if(Hash[temp].key==num)
16 {
17 Hash[temp].count++;
18 }else
19 {
20 struct HashArray *p=&Hash[temp];
21 while(p->key!=num&&p->next!=NULL)
22 {p=p->next;}
23 if(p->key==num)
24 {p->count++;}
25 else
26 {
27 p->next=(struct HashArray*)malloc(sizeof(struct HashArray));
28 p=p->next;
29 p->key=num;
30 p->count=1;
31 p->next=NULL;
32 }
33 }
34 }