開放尋址法


 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