哈希法存储与查找

哈希法:

实例:

#include <iostream>using namespace std;int searchHash(int h[], int l, int key);void insertHash(int h[], int l, int data);int main(){const int hashLength = 13;//哈希表长度int hashTable[hashLength]={0};int m, n;//创建hashfor (int i = 0; i < 6; i++){cin>>n;insertHash(hashTable, hashLength, n);}cin>>m;int result = searchHash(hashTable,hashLength, m);if (result != -1)cout<<"已经在数组中找到,位置为:" << result<<endl;elsecout<<"没有此原始"<<endl;return 0;}int searchHash(int h[], int l, int key){// 哈希函数int hashAddress = key % l;// 指定hashAdrress对应值存在但不是关键值,则用开放寻址法解决while (h[hashAddress] != 0 && h[hashAddress] != key){hashAddress = (++hashAddress) % l;}// 查找到了开放单元,表示查找失败if (h[hashAddress] == 0)return -1;return hashAddress;}// 数据插入Hash表void insertHash(int h[], int l, int data){// 哈希函数int hashAddress = data % l;// 如果key存在,则说明已经被别人占用,,此时必须解决冲突while (h[hashAddress] != 0){// 用开放寻址法找到hashAddress = (++hashAddress) % l;}// 将data存入字典中h[hashAddress] = data;}运行结果:

数最亮的星。如果有可能,我带你去远行。

哈希法存储与查找

相关文章:

你感兴趣的文章:

标签云: