当前位置: 编程技术>c/c++/嵌入式
哈希表实验C语言版实现
来源: 互联网 发布时间:2014-10-17
本文导语: 代码如下:/* 数据结构C语言版 哈希表 */#include #include #define NULLKEY 0 // 0为无记录标志 #define N 10 // 数据元素个数 typedef int KeyType;// 设关键字域为整型 typedef struct{ KeyType key; int ord;}ElemType; // 数据元素类型 // 开放定址哈希表的...
代码如下:
/*
数据结构C语言版 哈希表
*/
#include
#include
#define NULLKEY 0 // 0为无记录标志
#define N 10 // 数据元素个数
typedef int KeyType;// 设关键字域为整型
typedef struct
{
KeyType key;
int ord;
}ElemType; // 数据元素类型
// 开放定址哈希表的存储结构
int hashsize[]={11,19,29,37}; // 哈希表容量递增表,一个合适的素数序列
int m=0; // 哈希表表长,全局变量
typedef struct
{
ElemType *elem; // 数据元素存储基址,动态分配数组
int count; // 当前数据元素个数
int sizeindex; // hashsize[sizeindex]为当前容量
}HashTable;
#define SUCCESS 1
#define UNSUCCESS 0
#define DUPLICATE -1
// 构造一个空的哈希表
int InitHashTable(HashTable *H)
{
int i;
(*H).count=0; // 当前元素个数为0
(*H).sizeindex=0; // 初始存储容量为hashsize[0]
m=hashsize[0];
(*H).elem=(ElemType*)malloc(m*sizeof(ElemType));
if(!(*H).elem)
exit(0); // 存储分配失败
for(i=0;i