#include<stdio.h> #include<math.h> typedef char* ElementType; typedef unsigned int Index; #define MinTableSize 15 struct ListNode; typedef struct ListNode *Position; struct HashTbl; typedef struct HashTbl *HashTable; HashTable InitializeTable(int TableSize); void DestroyTable(HashTable H); Position Find(ElementType key,HashTable H); void Insert(ElementType key,HashTable H); ElementType Retrieve(Position P); void Delete(ElementType key,HashTable H); struct ListNode { ElementType Element; Position next; }; typedef Position List; struct HashTbl { int TableSize; List *TheLists; }; Index Hash(const char *key,int TableSize) { unsigned int HashVal=0; while(*key!='