哈希表的外部结构是字典,键和值对应。

和链表相似,可以通过运算得出元素位置。

区别在于,哈希表依靠哈希函数形成映射,虽然看似可能会多对一,即多个键对应同一个值,但是在在我的认知里面,在高数里面叫做满射。在哈希表里,这种数学情形被描述为哈希碰撞。

注意

发生哈希碰撞的时候,复杂度是O(K),k是指发生碰撞的元素个数

操作

哈希表没有访问,key和键存在函数上的绑定,虽然可能是满射,但是不再是通过有序结构形成的数组,队列之类存在索引值的数据类型。类似于流式文件,通过关键字查找。

搜索,插入,删除都是O(1),哈希是一种映射。

创建哈希表

添加元素

删除元素

修改元素

获取key值

哈希表的长度

检查key是否存在