算法与数据结构——哈希表
的用户参数。遍历函数结束时,可以通过该结构体中的p_result成员获取遍历结果。
4、删除记录
该接口用于删除指定关键字对应的记录,可以定义其函数名为:hash_db_del()。删除记录时,需要指定关键字信息。可以定义函数的原型为:
以删除学号为201444700239的学生记录为例,使用范例如下:
在该函数的实现中,绝大部分操作与查找记录是相同的,唯一的不同是,当找到关键字对应的结点时,不再需要将记录值提取出来,直接将该结点删除即可。函数实现的范例详见程序清单3.66。
程序清单3.66 删除记录函数范例程序
5、解初始化
对应于哈希表的初始化,用于当不再使用哈希表时,释放相关的空间。可以定义其函数名为:hash_db_deinit()。需要通过参数指定需要解初始化的哈希表实例,可以定义函数的原型为(hash_db.h):
如不再使用学生信息管理系统,则需使用解初始化函数释放哈希表的相关资源,使用范例如下:
在该函数的实现中,需要释放程序中分配的所有空间,主要包括添加记录时分配的结点空间,链表头结点数组空间。函数实现详见程序清单3.67。
程序清单3.67 解初始化函数范例程序
为便于查阅,如程序清单3.29所示展示了hash_db.h文件的内容。
程序清单3.68 hash_db.h文件内容
以使用该链式哈希表管理系统来管理学生记录为例,综合范例程序详见程序清单3.30。
程序清单3.69 哈希表综合范例程序
在这里,首先创建了一个哈希表,然后向其中添加了100个学生信息(以随机数的方式产生的),接着查找了ID对应的学生信息(这里的ID没有特别设置,即查找最后添加的学生记录),最后释放哈希表。
哈希表 相关文章:
- 周立功来讲解哈希表的实现(08-30)