哈希表真正存储的元素是什么

来源:14-4 链地址法 Separate Chaining

奋斗的小鸟22

2021-05-09

你好 bobo老师:
既然哈希表的结构是数组,那么它真正存储是键还是值,如果是键的话,那么这个键对应的值有存储到哪里了?有点懵了

写回答

1回答

liuyubobobo

2021-05-10

哈希表是一个数组,数组的索引是哈希值对 M 求余的结果。


数组中每个索引对应一个链表(或者红黑树),这个链表中存储的是相同的【哈希值对 M 取余的索引】的键。即图中的 k1, k2, k3 是键。


//img.mukewang.com/szimg/609842ed09582f8714801006.jpg


如果你要用哈希表做映射,每个键对应一个值(可以封装在一个 node 里);value 不是查找的关键字,它只不过是 key 的复数信息而已。找到 key,自然就找到 value 了。可以再体会一下,我们基于 BST 讲解的集合和映射,映射和集合的区别在哪里?其中的键和值,我们都是怎么应用的?


继续加油!:)

0
1
奋斗的小鸟22
非常感谢!
2021-05-15
共1条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程