一、该程序实现的哈希表:构造哈希函数的方法为除留余数法(函数modhash),处理哈希冲突的方法为链地址法。
二、对哈希表的操作:插入(函数hash_table_insert)、移除(函数hash_table_remove)、
查找(函数hash_table_lookup)、整个哈希表的释放(函数hash_table_delete)、
整个哈希表的输出(函数hash_table_print)。
三、哈希表的最大长度可以由HASHMAXLEN设置(我设为1000)。
四、输入哈希表的名称拼音字符是长度为10—20(长度可由STR_MAX_LEN和STR_MIN_LEN)的小写字母组成。
这些名字字符串是我用函数rand_str随机产生的。
五、名称拼音字符(关键字)到关键字值的转换方法:先把名称的拼音字符转换对应的ASCII,累加后作为关键字值。
我是用函数str_to_key实现的。
六、异常情况包括:
1、在对哈希表进行插入操作时,若哈希表的实际长度超过了哈希表的最大长度,我就输出“out of hash table memory!”,然后直接跳出插入子函数,不进行插入操作。
2、在对哈希表进行插入操作时,若插入的元素在哈希表中已经存在,我就输出“******already exists !”,然后直接跳出插入子函数,不进行插入操作。
3、在对哈希表进行查找操作时,若查到则返回其地址,若没查到则返回空地址。
4、在对哈希表进行移除操作时,对同义词元素的删除,分为表头和表中两种情况处理。
七、开发平台:DEV-C++,用c语言实现。
在哈希表程序中我比较注重整个代码风格,希望能形成很好的代码风格!如果有什么可以改进的,希望老师能跟我说说!。