除留余数建立哈希表(湖北汽车工业学院数据结构实验)

该实验旨在运用除留余数法创建哈希表,并通过差值法处理哈希冲突。程序设计思路是首先利用除留余数法将数据映射到哈希表,当遇到冲突时,采用差值法寻找新的存储位置。在查找数据时,同样先应用除留余数法确定初始地址,若未找到,则用差值法继续查找直至遍历完整个哈希表。
摘要由CSDN通过智能技术生成

实验要求

//运用除留余数法作为哈希函数及差值解决法解决哈希冲突解决法、设计哈希表。*/
//程序构思:
//依除留余数法将数据存储至哈希表中,发生哈希冲突时以差值解决法解决。
//除留余数法:
//Address=Key % Array_Size
//差值解决法:
//New_Address=(Old_Address+Offset)%Array_Siae
///数据查找时,同时也先用除留余数法运算出数据地址,
//若找不到运用差值法找出下一个数据地址,直到数据全查找完为止。

#include<stdio.h>
#define Max 6
#define HashMax 7

int Data[Max]={
   12,160,219,522,725,9997}; //数据数组
int HashTab[HashMax];
int Counter=1;                           //计数器

int Hash_Mod(int Key)                    //哈希函数之除留余数法
{
   
    return   Key%7;                            //返回,键值除以哈希表大小取余数
}

int Collision_Offset(int Address)        //差值哈希冲突解决法 
{
   
    int offset=3;                        //设差值为3
    return (Address+offset)%7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值