bool initHash(Hash& hash, int size)
hash.list = new Sqlist[size];
for (int i = 0; i < hash.size; i++)
hash.list[i].data = new Data[30];
if (hash.list[i].data == NULL)
哈希表的插入
bool insert(Hash& hash, int key, int value)
int n = HashFound(hash, key);
hash.list[n].data[hash.list[n].length] = D;
哈希表的查询
bool found(Hash& hash, int key)
int n = HashFound(hash, key);
for (int i = 0; i < hash.list[n].length; i++)
if (hash.list[n].data[i].key == key)
哈希表的删除
bool Delete(Hash& hash, int key)
int n = HashFound(hash, key);
for (int i = 0; i < hash.list[n].length; i++)
if (hash.list[n].data[i].key == key)
for (int j = pos; j < hash.list[n].length - 1; j++)
hash.list[n].data[j] = hash.list[n].data[j + 1];
哈希表的桶查找
int HashFound(Hash& hash, int key)
哈希表的销毁
for (int i = 0; i < hash.size; i++)
delete (hash.list[i].data);
哈希表的代码实现
bool initHash(Hash& hash, int size);
bool insert(Hash& hash, int key, int value);
int HashFound(Hash& hash, int key);
bool Delete(Hash& hash, int key);
bool Destory(Hash& hash);
bool found(Hash& hash, int key);
for (int i = 0; i < hash.size; i++)
delete (hash.list[i].data);
bool Delete(Hash& hash, int key)
int n = HashFound(hash, key);
for (int i = 0; i < hash.list[n].length; i++)
if (hash.list[n].data[i].key == key)
for (int j = pos; j < hash.list[n].length - 1; j++)
hash.list[n].data[j] = hash.list[n].data[j + 1];
int HashFound(Hash& hash, int key)
bool insert(Hash& hash, int key, int value)
int n = HashFound(hash, key);
hash.list[n].data[hash.list[n].length] = D;
bool found(Hash& hash, int key)
int n = HashFound(hash, key);
for (int i = 0; i < hash.list[n].length; i++)
if (hash.list[n].data[i].key == key)
bool initHash(Hash& hash, int size)
hash.list = new Sqlist[size];
for (int i = 0; i < hash.size; i++)
hash.list[i].data = new Data[30];
if (hash.list[i].data == NULL)
for (int i = 0; i < hash.size; i++)
for (int j = 0; j < hash.list[i].length; j++)
cout << "key:" << hash.list[i].data[j].key << " data:" << hash.list[i].data[j].data1 << endl;
