//hash.h Hashtable #include #include #include #define null NULL extern void myExit(int retval); void doHashtable(void); //Structures and typedefs typedef struct entry { char *key; char *val; entry *next; }; //Constants -- command codes enum { kPut = 1, kGet, //get = 2 kRemove, //remove = 3 kQuit, //quit = 4 kHelp, //help = 5 kBadCmd //Bad command = 6 }; enum { kNoErr = 0, kNotFoundErr, //Non Fatal kMemErr //Fatal }; enum { kReturnNormal = 0, kDeleteNext }; //Class Definition class Hashtable { //Data members private: entry myHash[50]; int done; //Functions public: Hashtable(void); ~Hashtable( void ); int hash(char key[10]); void clear(void); int put(char key[10], char val[30]); int get(char key[10], char val[30]); int remove(char key[10]); void doHashDemo(void); void clearChain(entry *target); int insertChain(entry *target, char key[10], char val[30]); int searchChain(entry *target, char key[10], char val[30]); int removeChain(entry *target, char key[10]); void doError(int err); };