微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 算法与数据结构——哈希表

算法与数据结构——哈希表

时间:08-25 来源:ZLG致远电子 点击:

的用户参数。遍历函数结束时,可以通过该结构体中的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没有特别设置,即查找最后添加的学生记录),最后释放哈希表。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top