哈希表(搬运)

















#define HashValueType long long 
const int MAXH = (1 << 20);
bool hashkey[MAXH];                        // 1)
HashValueType hashval[MAXH];               
int getKey(HashValueType val) {
    int key = (val & (MAXH-1) );           // 2)
    while (1) {
        if (!hashkey[key]) {               // 3)
            hashkey[key] = true;
            hashval[key] = val;
            return key;
        }
        else {
            if (hashval[key] == val) {
                return key;               // 4)
            }
            key = (key + 1) & (MAXH - 1); // 5)
        }
    }
}

bool hasKey(HashValueType val) {
    int key = ( val & (MAXH-1) );
    while (1) {
        if (!hashkey[key]) {
            return false;
        }
        else {
            if (hashval[key] == val) {
                return true;
            }
            key = (key + 1) & (MAXH - 1);
        }
    }
}


















    让思维见见世面
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号