Problem 1. a. bad Most English words have no more than 15 letters. Hence only 15*26<400 entries are used. Those English words whose sum of letters equal would hash to the same location. Most entries of hash table are not used. b. bad Since the position of first letter of key is between 0 and 255. Hence only 256 entries are used. Those strings which have the same first letter would hash to the same location. Most enties of hash table are not used. c. bad In this case, the keys are uniformly distributed in Hash Table. However, since the hash function h(x) is a random function. It is hard to locate a key. One has to locate the key sequentially. There is no general rule to predict the entry of a key. d. bad In this case, the keys are uniformly distributed in Hash table. And we can uniquely locate the entry of a key by h(x). However, this hash function is a time consuming function, since there are 1000000 iterations to get h(x). Problem 2. The key to implement a symbol table that uses hashing in this problem is to implement the hash function using Horner's rule. int char_to_int(char c) // convert character to integer { if(c>='a' && c<='z') return c-'a'+1; else if(c>='A' && c<='Z') return c-'A'+1; else { cout<<"error"<