开放寻址法


 1 //开放寻址法
 2 class MyHashMap 
 3 {
 4 public:
 5     const static int N = 2000003;
 6     int hash_key[N], hash_value[N];
 7 
 8     MyHashMap() 
 9     {
10         memset(hash_key, -1, sizeof hash_key);
11         memset(hash_value, -1, sizeof hash_value);
12     }
13 
14     int find(int key)
15     {
16         int t = key % N;
17         while (hash_key[t] != key && hash_key[t] != -1)
18         {
19             if ( ++t == N) t = 0;
20         }
21         return t;
22     }
23 
24     void put(int key, int value) 
25     {
26         int t = find(key);
27         hash_key[t] = key;
28         hash_value[t] = value;
29     }
30 
31     int get(int key) 
32     {
33         int t = find(key);
34         if (hash_key[t] == -1) return -1;
35         return hash_value[t];
36     }
37 
38     void remove(int key) 
39     {
40         int t = find(key);
41         if (hash_key[t] != -1)
42         {
43             hash_key[t] = -1;
44             hash_value[t] = -1;
45         }
46     }
47 };

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM