哈希表线性探测再散列

来源:互联网 发布:阿里大鱼 php短信demo 编辑:程序博客网 时间:2024/05/16 23:41

#include<iostream>#define HashLength 23using namespace std;//哈希函数int HashFuc(int i,int length){return i%length;}//线性探测再散列int *HashReLineExplor(int A[], int k,int h[],int m)//关键字数组、关键字个数、哈希表、哈希表长度{for (int i = 0; i < m; i++)h[i] = NULL;for (int j = 0; j < k; j++){int loc = HashFuc(A[j], HashLength);while (h[loc]){loc=loc++%m;//寻找第一个空位置}h[loc] = A[j];}return h;}int main(){int Hash[25];//哈希表int Key[20] = { 23, 26, 14, 22, 24, 38, 32, 120, 29, 93, 83, 21, 11, 23, 43, 123, 94, 93, 92, 91 };//关键字HashReLineExplor(Key, 20, Hash, 25);for (int i = 0; i < 25; i++){if (Hash[i]){printf("第%2d个元素是:%4d\n", i, Hash[i]);}}return 0;}

数组中元素: 23, 26, 14, 22, 24, 38, 32, 120, 29, 93, 83, 21, 11, 23, 43, 123, 94, 93, 92, 91 

哈希表中元素:

第 0个元素是:  23
第 1个元素是:  24
第 2个元素是:  93
第 3个元素是:  26
第 4个元素是:  23
第 5个元素是: 120
第 6个元素是:  29
第 7个元素是:  94
第 8个元素是: 123
第 9个元素是:  32
第10个元素是:  93
第11个元素是:  11
第12个元素是:  92
第14个元素是:  14
第15个元素是:  38
第16个元素是:  83
第20个元素是:  43
第21个元素是:  21
第22个元素是:  22
第23个元素是:  91
请按任意键继续. . .


1 0