散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每一个关键字key对应一个存储位置(key)。
其中,f被称为散列函数,又被称为哈希函数。采用散列技术将记录存储在一块连续的存储空间中,这块连续的存储空间成为散列表或者哈希表。
//哈希散列表
#include<iostream>
using namespace std;
typedef int status;
#define success 1
#define unsuccess 0
#define ok 1
#define false 0
typedef int status;
#define hashsize 12 //定义散列表为数组的长度
#define nullkey -32768
//哈希表结构定义
typedef struct Hashtable
{
int *elem; //数据元素存储基址,动态分配数组
int count; //当前数据元素个数
}Hashtable;
int m=0; //散列表的表长,全局变量
//操作
status Inithashtable(Hashtable *H);
int Hash(int key);
void Inserthash(Hashtable *H,int key);
status Searchhash(Hashtable H,int key,int *addr);
void Createhash(Hashtable H,int a[],int n);
void Showhash(Hashta