#include <stdio.h>
#define LEN 11
void hash_init(int hash_table[]
)
{
for(int i=0; i<LEN; i++)
{
hash_table[i] = 0;
}
return ;
}
//除留余数法
int hash_fun(int key)
{
return key%LEN;
}
//成功返回0
//失败返回-1
int hash_insert(int hash_table[], int key)
{
int index, index1;
index = hash_fun(key);
if(hash_table[index] == 0)
{
hash_table[index] = key;
return 0;
}
//解决冲突---->线性探测法解决冲突
for(int i=1; i<LEN; i++)
{
index1 = (index+i)%LEN;
if(hash_table[index1] == 0)
{
hash_table[index1] = key;
return 0;
}
}
return -1;
}
void hash_show(int hash_table[])
{
for(int i=0; i<LEN; i++)
{
printf("hash_table[%d] = %d\n", i, hash_table[i]);
}
}
int main()
{
int hash_table[LEN];
hash_init(hash_table);
hash_insert(hash_table, 20);
hash_insert(hash_table, 30);
hash_insert(hash_table, 70);
hash_insert(hash_table, 15);
hash_insert(hash_table, 8);
hash_insert(hash_table, 12);
hash_insert(hash_table, 18);
hash_insert(hash_table, 63);
hash_insert(hash_table, 19);
hash_show(hash_table);
return 0;
}