1
2
3
4
5
6
7
8
9
10
11
12
unsigned int BKDRHash(char *str)
{

unsigned int seed = 131; // 31 131 1313 13131 131313 etc..
unsigned int hash = 0;

while (*str)
{
hash = hash * seed + (*str++);
}

return (hash & 0x7FFFFFFF);
}