基本思想和存储结构
-
哈希表的基本思想:以线性表中每个元素的关键字key为自变量,通过一定的函数关系h(key)计算出函数的值,然后把这个值作为数组的下标,将元素存入对应的数组元素中,其中函数h(key)称为哈希函数,函数的值称为哈希地址
-
如线性表:69,65,90,37,92,6,28,54
-
哈希函数:h(key) = key % 13
-
哈希表的底层结构就是一个数组,数组的长度即哈希表的长度,数组中的每个空间(也叫桶)存放的是一条链表,链表中的每个节点用来存放元素。即一个数组的每个数组元素是一条链表,链表的每个节点存放元素,可以将数组的每个元素看做桶,桶里面可以有多个元素
如何检索元素
- 哈希表首先根据要存放的元素的key得到hash值,然后将这个hash值作为数组的下标(定位桶),进而确定将要遍历的链表。就不用遍历所有的链表,所以检索效率高
解决哈希冲突
- 开放地址法
- 拉链法