首页 > 其他 > 详细

哈希表

时间:2017-08-08 10:38:12      阅读:144      评论:0      收藏:0      [点我收藏+]

模板

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define MOD 1223337
 4 struct Hash_map
 5 {
 6     int num[MOD+2];
 7     char s[MOD+2][12];
 8     void next_key(int &mod,int &value,int &key)
 9     {
10         value++;
11         key=value%mod;
12     }
13     int str_hash(char str[])
14     {
15         unsigned int hash=0;
16         while(*str)
17         {
18             hash=(hash<<16)+(hash<<6)-hash+*(str++);
19         }
20         return hash&0x7FFFFFFF;
21     }
22     void insert(char str[])
23     {
24         int value=str_hash(str),mod=MOD,key=0;
25         next_key(mod,value,key);
26         while(num[key])
27         {
28             if(strcmp(str,s[key])==0)
29             {
30                 num[key]++;
31                 return ;
32             }
33             next_key(mod,value,key);
34         }
35         strcpy(s[key],str);
36         num[key]++;
37     }
38     int find(char str[])
39     {
40         int value=str_hash(str),mod=MOD,key=0;
41         next_key(mod,value,key);
42         while(num[key])
43         {
44 
45             if(strcmp(str,s[key])==0)
46             {
47                 return num[key];
48             }
49             next_key(mod,value,key);
50         }
51         return 0;
52     }
53 } Hash;

 

哈希表

原文:http://www.cnblogs.com/xseventh/p/7305275.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!