hash table(开放寻址法-二次探查实现的哈希表)

hash table(开放寻址法-二次探查实现的哈希表)


#ifndef C11LEARN_HASHQUADRATIC_H
#define C11LEARN_HASHQUADRATIC_H
#include "HashLiner.h"
template<typename T>
class HashQuadratic:public HashLiner<T>
{
public:
    HashQuadratic(int c1 = 1,int c2 = 2);
protected:
    int c1;
    int c2;
protected:
    virtual int hashing(int key,int index);
};
template<typename T>
HashQuadratic<T>::HashQuadratic(int c1, int c2):HashLiner<T>(),c1(c1),c2(c2) {}
template<typename T>
int HashQuadratic<T>::hashing(int key,int index){
    return (HashQuadratic<T>::auxiliary_hashing(key)+c1*index+c2*index*index)%HashLiner<T>::capacity;
}
#endif //C11LEARN_HASHQUADRATIC_H

测试代码

    HashQuadratic<string> hashQuadratic;
    hashQuadratic[2] = "hello";
    hashQuadratic[123456] = "world";
    cout << hashQuadratic[2] << endl;
    cout << hashQuadratic[123456] << endl;
    HashQuadratic<string> hashQuadratic1 = hashQuadratic;
    cout << hashQuadratic1[2] << endl;
    cout << hashQuadratic1[123456] << endl;
    HashQuadratic<string> hashQuadratic2;
    hashQuadratic2 = hashQuadratic;
    cout << hashQuadratic2[2] << endl;
    cout << hashQuadratic2[123456] << endl;

辅助类
HashLiner链接地址

上一篇:c#实现一个自动售货机的基础动作功能


下一篇:JVM优化过头了,直接把异常信息优化没了?