【问题标题】:Very simple hash table inquisition非常简单的哈希表查询
【发布时间】:2015-07-21 20:38:04
【问题描述】:

如果哈希表的索引是通过使用从hash() 函数% TABLE_SIZE 返回的某个整数值来计算的,这是否意味着唯一可能的索引值是 0-9,因为返回值的范围对于模运算符是 [0, 9]?我知道这很简单,但它阻碍了我进一步理解哈希表的概念。

【问题讨论】:

  • 也许我应该更具体一点 - 如果通过调用 NUMBER % TABLE_SIZE 来获取哈希表索引值,其中 NUMBER 始终是正整数,这不是总是返回 0-9 之间的值吗?
  • 那么你的问题是什么?
  • 没有。 x % y 可以给出 0 到 y-1 范围内的值。
  • 如果x总是大于y,而且都是整数,怎么能返回不在[0, 9]中的东西?
  • 我认为您对模运算符有一个基本的误解。简单示例:150 % 100 = 50

标签: c data-structures hashtable


【解决方案1】:

不,你对%modulo)的理解是错误的。具体来说,您似乎忽略了右手参数的原因,并假设它始终是一个常量10,这完全是错误的。

表达式x % y 将返回一个介于 0 到 (y - 1) 之间的值(假设两者都是无符号的)。

【讨论】:

  • 我知道我错过了一些东西,只是无法找到它。
猜你喜欢
  • 2011-12-14
  • 2016-02-17
  • 2018-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-27
  • 1970-01-01
  • 2013-06-12
相关资源
最近更新 更多