[数据结构]Hash查找算法设计

Posted Spring-_-Bear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[数据结构]Hash查找算法设计相关的知识,希望对你有一定的参考价值。

实验名称

Hash查找算法设计

实验内容

输入10个0-99之间的整数,构造hash表。采用除留余数法构造哈希函数,处理冲突的方法是线性探测法。注: 测试数据必须有产生冲突的情况

效果展示

源码

/*
hash查找算法设计:输入10个0-99之间的整数,构造hash表。
hash函数自行设计,处理冲突的方法是线性探测法。
编写程序实现。
注:测试数据必须有产生冲突的情况。
*/
#include<iostream>
#include <iomanip>
using namespace std;
int main()

	int hash[10], number, item, i;

	cout << "请输入10个0-99之间的整数!" << endl;

	for (i = 1; i <= 10; i++)

		cout << "第"<<i<< "个数:" ;   //输入提示
		cin >> number;

		//判断输入的数据是否符合要求,不符合要求则继续输入
		if (!(number >= 0 && number <= 99))
			cout << "您输入的数据有误,请重新输入!!!" << endl;
			i--;
			continue;
		

		//求输入数的余数
		item = number % 10;

		while (true)
		
			if (!(hash[item] <= 99 && hash[item] >= 0))   //如果冲突
				hash[item] = number;
				break;
			
			else if (++item == 10)   //哈希表到尾,从头开始
			
				item = 0;
			
		
	

	cout << "生成的哈希表如下:" << endl;
	for (i = 0; i < 10; i++)
	
		cout << setw(4) << i << "|";
	

	cout << endl << "  _________________________________________________" << endl;

	for (i = 0; i < 10; i++)
	
		cout << setw(4) << hash[i] << "|";   //hash表生成完毕
	

	return 0;

以上是关于[数据结构]Hash查找算法设计的主要内容,如果未能解决你的问题,请参考以下文章

哈希表及其常用算法(代码实例)

我说一致性Hash简单,没人反对吧?

查找算法--Hash search--哈希查找

最快的内容查找算法-----暴雪的Hash算法

20172314 三种查找算法练习

从搜索文档中查找最小片段的算法?