Hash Code
Assuming you've got a perfect hash function, writing a constant time
search function is easy:
#define TABLE_SIZE 32768
typedef char *stringSet[TABLE_SIZE];
void initialize(stringSet a)
{
int i;
for ( i = 0; i < TABLE_SIZE; i++ )
a[i] = NULL;
}
int insert(stringSet a, char *s)
{
unsigned int h;
h = hashf( s );
if ( a[h] == NULL )
{
a[h] = s;
return 0;
}
else
return -1;
}
int isMember( stringSet a, char *s )
{
unsigned int h;
h = hashf( s );
if ( a[h] == NULL )
return FALSE;
else
return( !strcmp(a[h], s );
}
Next Slide