1.原理简介 哈希查找是通过计算数据元素的存储地址进行查找的一种方法。⑴用给定的哈希函数构造哈希表;⑵根据选择的冲突处理方法解决地址冲突;⑶在哈希表的基础上执行哈希查找。构造哈希函数:直接定址法、数字分析法、平方取中法、折叠法、除留余数法、随机数法。冲突解决:开放定址法、链地址法。 2.代码实现 #define MaxSize 100 //定义最大哈希表长度 #define NULLKEY -1 //定义空关键字值 #define DELKEY -2 //定义被删关键字值 typedef int KeyType; //关键字类型 typedef char InfoType; //其他数据类型 typedef struct { KeyType key; //关键字域 InfoType data; //其他数据域 int count; //探查次数域 }HashTable[MaxSize]; //哈希表类型 void InsertHT(HashTable ha, int &n, KeyType k, int p) //将关键字k插入到哈希表中 { int i, adr; adr = k%p; if (ha[adr].key == NULLKEY || ha[adr].key == DELKEY) { //x[j]可以直接放在哈希表中 ha[adr].key = k; ha[adr]