int hazmat::hashStr(char const * const str)
{
int count = 0;
for ( unsigned i = 0; i < strlen( str ); i++ )
{
count += str[i]; // get the ascii sum.
}
return count % maxSize;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您误解了哈希表的工作原理.您需要分配一个固定长度的数组(在最简单的情况下),然后每个条目必须有一个链表,以便您可以解决重复项.也就是说,两个字符串可能会产生相同的哈希值,您需要遍历链表并比较键.
是的,就像另一张海报所说,添加角色是一种可怕的方法.想一想 - "abc"和"cba"会产生相同的哈希值.
| 归档时间: |
|
| 查看次数: |
867 次 |
| 最近记录: |