一直查不到怎么用平方探测法建立……
怎么用平方探测法建立呀?
#include<stdio.h>
#include<stdlib.h>
#define NULLKEY - 1
#define MaxSize 100
typedef int KeyType;
typedef chat InfoType;
typedef struct
{
KeyType key;
InfoType data;
int count;
}HashTable;
void InsertHT(HashTable ha[],int &n,int m,int p,KeyType k)
{
int adr;
int cnt;
adr = k%p;
if(ha[adr].key==NULLKEY)
{
ha[adr].key=k;
ha[adr].count=1;
}
else
{
cnt=1;
do
{
adr=(adr+1)%m;
cnt++;
}while(ha[adr].key!=NULLKEY);
ha[adr].key=k;
ha[adr].count=cnt;
}
n++;
}
void CreateHT(HashTable ha[],int &n,int m,int p,KeyType keys[],int total)
{
int i;
for(i=0;i<m;i++)
{
ha[i].key=NULLKEY;
ha[i].count=0;
}
n=0;
for(i=0;i<total;i++)
{
InsertHT(ha,n,m,p,keys[i]);
}
}{
KeyType key;
InfoType data;
int count;
}HashTable;
void InsertHT(HashTable ha[],int &n,int m,int p,KeyType k)
{
int adr;
int cnt;
adr = k%p;
if(ha[adr].key==NULLKEY)
{
ha[adr].key=k;
ha[adr].count=1;
}
else
{
cnt=1;
do
{
adr=(adr+1)%m;
cnt++;
}while(ha[adr].key!=NULLKEY);
ha[adr].key=k;
ha[adr].count=cnt;
}
n++;
}
void CreateHT(HashTable ha[],int &n,int m,int p,KeyType keys[],int total)
{
int i;
for(i=0;i<m;i++)
{
ha[i].key=NULLKEY;
ha[i].count=0;
}
n=0;
for(i=0;i<total;i++)
{
InsertHT(ha,n,m,p,keys[i]);
}
}