实现查找功能

在这一节中,你将会实现一个 lookup() 函数,使用这个函数可以检查哈希表中是否已经存在某个给定的元素。lookup() 函数基于 traverse() 函数实现,如下所示:

  1. func lookup(hash *HashTable, value int) bool {
  2. index := hashFunction(value, hash.Size)
  3. if hash.Table[index] != nil {
  4. t := hash.Table[index]
  5. for t != nil {
  6. if t.Value == value {
  7. return true
  8. }
  9. t = t.Next
  10. }
  11. }
  12. return false
  13. }

你可以在 hashTableLookup.go 源文件中找到上面的代码。执行 hashTableLookup.go 将得到下面的输出:

  1. $ go run hashTableLookup.go
  2. 120 is not in the hash table!
  3. 121 is not in the hash table!
  4. 122 is not in the hash table!
  5. 123 is not in the hash table!
  6. 124 is not in the hash table!

以上的输出表示 lookup() 函数效果很棒!