Author: Stan Eisenstat
Subject: Re: [Cs323] Hash Function clarifications
Date: Tuesday, 03 Nov 2020, 08:12:00
> Message Posted By: Unknown
>
> 1. What is CHAR_BIT? Is it the last bit in the value of CHAR?
CHAR_BIT is the number of bits in a char, which is
defined in <limits.h>.
=====
> 2. Not sure if I am missing something, but why does SIZE need to be odd?
> How can we guarantee that the number of chains is odd? Can't it be 0 if
> there are no hash collisions?
For the hash function given in the specification, an odd
SIZE generally yields a more uniform distribution of the
items among chains than an even one.
The number of chains is a parameter, not a function of
the items added to the hash table.
=====
> 3. Is the value returned by the hash function guaranteed to be less than
> the size of the table? If not, does this mean we need another mod by the
> size of the table to use it as an index?
As you can see by examining the expression
(((unsigned long)(PREF) << CHAR_BIT) | (unsigned)(CHAR)) % SIZE
its value must be nonnegative and less than SIZE.
--Stan-
PREV
INDEX
NEXT