C语言数据结构 - 哈希表

#include 
#include 

/************** 哈希表结构实现 **************/
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 *

你可能感兴趣的:(华为OD算法刷题笔记,数据结构,c语言)