C语言实现哈希表的相关运算算法 编写程序实现哈希表的构造过程。

发布时间:2019-08-26 13:58:41

C语言实现哈希表的相关运算算法 编写程序实现哈希表的构造过程。

推荐回答

#define MaxSize 100 //定义最大哈希表长度#define NULLKEY -1 //定义空关键字值#define DELKEY -2 //定义被删关键字值typedef int KeyType; //关键字类型typedef char * InfoType; //其他数据类型typedef struct{ KeyType key; //关键字域 InfoType data; //其他数据域 int count; //探查次数域} HashData; typedef HashData 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].count=1; } else //发生冲突时采用线性探查法解决冲突 { i=1; //i记录x[j]发生冲突的次数 do { adr=(adr+1) % p; i++; } while (ha[adr].key!=NULLKEY && ha[adr].key!=DELKEY); ha[adr].key=k; ha[adr].count=i; } n++;}void CreateHT(HashTable ha,KeyType x[],int n,
以上问题属网友观点,不代表本站立场,仅供参考!