链式哈希表与开放寻址哈希表的实现与分析
链式哈希表概述
链式哈希表由一个桶数组组成,每个桶是一个链表,包含哈希到表中特定位置的元素。链式哈希表的数据结构 CHTbl
包含六个成员:
- buckets
:表中分配的桶的数量。
- h
、 match
和 destroy
:用于封装传递给 chtbl_init
的函数。
- size
:表中当前元素的数量。
- table
:桶数组。
以下是 CHTbl
结构的定义:
typedef struct CHTbl_ {
int buckets;
int (*h)(const void *key);
int (*match)(const void *key1, const void *key2);
void (*destroy)(void *data);
int size;
List *table;
} CHTbl;
链式哈希表操作
- 初始化(chtbl_init)