Tip:
Highlight text to annotate it
X
现在 我们已经创建了空哈希表
下一步则是确定如何查找和添加内容
二者的第一步是一样的
都需要找出合适的桶 这也是我们接下来要做的
在建哈希表时 请记住这一点
这是桶链表
每个桶都是包含了元素的链表 每个元素都包括键和值
先不管我们是要搜索 找出与某个词有关的值
还是要添加与某个词有关的新值
第一步都是找出合适的桶
所以进行查找 先要找出合适的桶
接着就要浏览桶中的所有元素
找出与关键词相匹配的
如果要进行添加 同样需要从找出合适的桶开始
接下来再进行浏览 确定该词是否已经存在
如果不存在 就添加新词 这样就出现了包含该词和值的新元素
两者都取决于能否找到合适的储存桶
我们只需写一次代码 之后在查找和添加中就可以重复使用
我们的目标是定义过程 将之称作hash table get bucket 包括两个输入
包括一个哈希表和一个关键词 之后它则会输出关键词出现的桶
现在尚不知道该关键词在表中是否确实存在
可能在储存桶的某处 也可能不在
但hash table get bucket 所要做的重要一环就是找出桶
之前我们定义过的hashstring过程对完成这一步骤非常有用
hashstring需两个输入 包括字符串 即关键词
还包括桶数量 再输出数字 即桶索引
这里有些不太匹配的地方 在定义hash table get bucket各位要思考一下
在输入中 hashstring需要一个数字类型的输入 即桶的数量
Hash table get bucket 的二个输入是哈希表和一个关键词
你还需要了解如何获得哈希表的大小 以将之传入hashstring
如果大家记住了这个哈希表的结构
就能知道如何去做了
请记住 我们哈希表是一个桶链表 因此我们要传入hashstring的值其实是该哈希表的大小
也就是说 桶链表中的元素个数
来看看大家能否定义hash table get bucket
提示一下 大家不妨用非常少的代码来完成整个定义过程
只要一行就可以了