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 }else19 {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 else26 {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 }
即使没有收获的希望也心平气和的继续。