码迷,mamicode.com
首页 > 其他好文 > 详细

哈希表

时间:2017-08-08 10:53:58      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:map   char   struct   []   nbsp   ring   ==   span   blog   

模板

 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;

 

哈希表

标签:map   char   struct   []   nbsp   ring   ==   span   blog   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!