用java写的拉链法实现哈希表的建立,应用到类似于电话本查询的程序里,课程设计时候做的,所以不是很完美
1
在程序中我们对关键字key应用散列函数H(key)来判断关键字key是否在散列表中,即计算H(key)的值,H(key)值确定所存数据在散列表中的位置。这样一个数据元素的地址是通过函数来计算的,所以数据元素并不需要按照特定的顺序来存放。但是散列函数H(key)将关键字映射为一个整数时,有可能两个关键字的地址相同,所以构造散列函数时要考虑尽量减少冲突的发生。构造散列函数有多种方法,如:平方取中法、除留余数随机数法。本程序采用除留余数法。程序的具体实现如下:本程序是用模板类myhash来实现,包括protected和public属性成员。其中protected成员有*ht(自定义散列表指针)、*empty(bool类型指针,功能是将元素值空、m(散列表容量)、p(除留余数法的除数)以及辅助函数H(key)(散列函数)和collision(处理冲突的函数);public成员包括构造函数、析构函数和复制构造函数以及=重载函数,其它成员函数主要有:traver(遍历散列表)、show()(打印出哈希表所存的元素)返回值为bool类型的函数search\insert\Delete。search函数(查询关键字为key的元素的位值)、insert函数(插入元素e到哈希表中)、Delete函数(删除关键字为key的元素)。本程序的main函数同样采用两种类型的数据来进行测试,int型和char型,主要测试元素的插入、删除和搜索。
2019-12-21 20:06:51 4KB 哈希表 c++
1
《数据结构与算法分析》课程设计教学任务书 通讯录系统设计: 设计要求 设计以姓名为关键字的散列表(哈希表),实现通讯录查找系统,完成相应的建表和查表程序。 (1)设每个记录有下列数据项:用户名、电话号码、地址; (2)从键盘输入各记录,分别以姓名为关键字建立散列表; (3)人名可以采用汉语拼音形式。人名字符串转化为数字的方式自行决定。 (4)哈希函数用除留余数法构造,采用二次探测再散列法解决冲突; (5)根据姓名查找,找到显示给定记录的电话号码和地址;找不到提示通讯录无此人。 (6)通讯录信息保存到文件。 ============================================================= 以上为任务书,我的程序在其基础上又增加了以下功能: 1、通讯录信息以链表的形式进行存储。 2、可从文件读取之前保存的通讯录信息。 3、人名支持汉字。 =================================== 文件说明: contacts.c ——主程序文件 hash.c -- 支持哈希表操作的函数 hash.h -- 哈希类型接口文件 list.c -- 支持列表操作的函数 list.h——列表类型接口文件 menu.c —— 实现菜单的函数 menu.h —— 菜单函数的声明 contacts.dat —— 数据存储文件(二进制形式) Contacts.cbp ——CodeBlocks工程文件,如有CodeBlocks,可直接打开工程。
2019-12-21 20:05:01 25KB 数据结构 链表 哈希表 通讯录系统
1
问题描述: 针对某个单位或个人的电话号码簿,设计一个哈希算法,并完成相应的建表和查表程序。 基本要求: 设每个记录有下列数据项:电话号码、用户名、住址。从键盘输入各记录,以用户名为关键字建立哈希表, 哈希函数用除留取余数法构造, 采用线性探测法解决冲突。可以插入、查找、删除并显示给定用户名的记录, 并计算查找长度, 哈希表保存到文件中。 测试数据: 取自己手机的电话号码簿中的若干个记录。 提高要求: 将电话号码薄以文件形式保存到盘上, 能够按用户名和电话号码两种形式建立哈希表并实现插入、 查找、 删除表中元素的功能。
2019-12-21 20:01:41 13.26MB MFC 哈希表 小电话簿 线性探测法
1
线性表的操作 二叉树的操作 图的遍历操作 栈的基本操作 数据查找 哈希表设计 排序
2019-12-21 19:49:32 110KB 数据结构 二叉树 哈希表 排序
1
采用除留余数法构建哈希表,伪散列解决冲突 内有实验报告,通过vc++测试,我们小组做这个得了满分!
2019-12-21 19:41:56 81KB 哈希表 班级人数
1
////采用除留余数法定义哈希表哈希表长度为10,哈希函数为H(key)=key%13。产生冲突时采用线性探测法实现下面要求的功能。 ////(1)初始化哈希表,置空哈希表 ////(2)在哈希表中查找元素 ////(3)在哈希表中插入元素 ////(4)输出哈希表中所有元素 ////(5)建立Hash表
2019-12-21 19:41:15 2KB 哈希表操作 查找 插入 输出
1
代码相似度检测系统源代码 代码相似度检测系统源代码 代码相似度检测系统源代码
2019-12-21 19:33:07 566KB 代码相似度检测系统源代码
1
将数据文本文件读到哈希表里存储,根据《Data Structures and Algorithms Using C#》的第十章制成
2019-12-21 19:24:34 43KB 数据文本文件 哈希表
1
这是我研究生的一个作业,要用贝叶斯分类器去实现垃圾邮件的分类。 第一次是用c语言实现。 第二次用Java,并且用了哈希表,用以保证其计算速度
2019-12-21 19:23:17 617KB 贝叶斯分类器 Java C 哈希表
1