一个c++实现的哈希表类
在程序中我们对关键字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型,主要测试元素的插入、删除和搜索。
推荐下载
-
如何在C++中建立一个顺序表
在数据结构SLType中,Listen为顺序表已存结点的数量,也就是当前顺序表的长度,ListData是一个结构数组,用来存放各个数据结点。我们认为该顺序表是一个班级学生的记录。其中,key为学号,n
17 2020-10-03 -
perl哈希的一个实例分析
以下为输出结果:#----测试哈希key的方法:#---清空哈希:
17 2021-06-18 -
iocp一个实现不错的类
这个类还可以的,只是一个基础。要想学习还是可以研究明白
14 2020-05-19 -
一个异质链表类的实现
/*题目:大学中的人员分三类:学生,教师和职员,他们的基本信息如下:学生:姓名,年龄,学号,年级,成绩教师:姓名,年龄,身份证号,职称,工资职员:姓名,年龄,身份证号,工资现在需要管理各类人员的信息,
55 2019-07-26 -
Matrix类的一个代码实现
Matrix类,2008年刚学C#时写的,一直想重构,所以一直没重构
31 2019-07-27 -
FIFO的一个实现类CircularFifo
FIFO的一个VC的实现类CircularFifo,附带测试程序
28 2019-01-06 -
c++windows Socket实现的一个http类
自己写的socket访问http的类支持代理访问支持利用X-Forwarded-For伪造ip实现了自动记录并提交cookie新手写得很不好,有问题请emailgongzi@live.hk
20 2019-07-29 -
C#编写一个类实现队列的功能
C#编写一个类实现队列的功能,并编写一个测试类测试该队列的功能(参考.Net的类库中已经封装好了的队列类:System.Collections.Queue,可以将自己做好的类,和它进行比较)
31 2019-05-08 -
哈希表设计哈希表的具体实现代码
不错,真的很不错,真的真的能过,我试过了,请多多支持
47 2019-01-11 -
利用一个链表类实现一个队列类和栈类.doc
我们经常会遇到这样的问题:利用一个链表类实现一个队列类和栈类,这个无论是在学生时代还是已经步入社会已经是个合格的程序员也会遇到同样的问题,值得收藏和温习一下
18 2020-06-11
用户评论