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