《数据结构》课程设计 之 哈希查找

本文详细介绍了哈希查找的概念,包括哈希函数、哈希表的构造及冲突解决方法。通过一个长度为11的闭散列表实例,展示了如何使用除留余数法建立哈希表,并实现查找和删除操作。实验结果分析了不同操作对哈希表状态的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 题目
哈希查找
概述:
哈希表的查找过程与构造哈希表的过程基本一致,即给定关键字key值并根据构造哈希表时设定的哈希函数求得其存储地址。若哈希表的此存储地址中没有记录,则查找失败;否则将该地址中的关键字值与key进行比较,若相等则査找成功;否则根据构造哈希表时设定的解决冲突方法寻找下一个哈希地址,知道查找成功或查找到哈希地址中无记录(既查找失败)为止。
我们约定,对哈希表Hash中未存放记录的数组元素 Hash[i],其标志是Hash[i]值为-1并且,对冲突的处理采用线性探测法; Hash[i]值为-2表示存放于 Hash[i]的关键字值已被删除,但查找到该项时不应终止查找。下面以长度为11的闭散列(哈希)表为例给出在哈希表上的插入、查找和删除算法。初始时哈希表中的关键字值全部置为-1,表示该哈希表为空。
二. 任务

  1. 了解哈希函数和哈希表的有关概念
  2. 掌握哈希表的建立与查找方法

三. 实验内容

用除留余数法建立一个哈希表,然后在哈希表中实现查找和删除功能。

四.程序

#include "stdafx.h"
#include<stdio.h>
#define MAXSIZE 11
#define key 11 
void Hash_Insert(int Hash[],int x)
{
   
	int i=0,t;
	t=x%key;
	while(i<MAXSIZE)
	{
   
		if(Hash[t]<=-1)
		{
   
			Hash[t]=x;
			break;
		}
		else
			t=(t+1)%key;
		i++;
	}
	if(i==MAXSIZE)
		printf("Hashlist is full!\n");
}

void 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值