typedef struct nodestruct {
     struct nodestruct *next;
     char *word;
} nodeptr;

class Hash {
 private:
     unsigned hashsize;
     nodeptr **hashtab;
     unsigned hash(char *s) {
	  unsigned hashval;
	       
	  for( hashval=0 ; *s != '\0' ; s++ )
	       hashval = *s + 31 * hashval;
	       
	  return hashval % hashsize;
     };
 public:
     Hash(unsigned size);
     ~Hash(void);
     nodeptr *install(char *word);
     nodeptr *lookup(char *word);
};
