#include <stdio.h>
#include <stdlib.h>
/************** 哈希表结构实现 **************/
typedef int bool;
typedef struct ListNode {
void *key;
void *val;
struct ListNode *next;
} Node;
typedef struct {
int size; // 哈希表存入数据的个数
int length; // 哈希表底层数组容器的长度
Node **buckets; // 哈希表底层数组容器,数组元素是Node*
unsigned int (*hashCode)(void *); // 外部指定的hashCode方法,用于求解key的hash值
bool (*equals)(void *, void *); // 外部指定的equals方法,用于比较两个key是否相同
} HashTable;
/*!
* 创建哈希表
* @param length 指定的哈希表底层数组的长度
* @param hashCode 指定的求解key的hash值的方法
* @param equals 指定的比较两个key是否相同的方法
* @return 哈希表
*/
HashTable *new_HashTable(int length, unsigned int (*hashCode)(void *), bool (*equals)(void *, void *)) {
HashTable *
C语言数据结构 - 哈希表
于 2023-07-27 19:41:39 首次发布