C语言数据结构 - 哈希表

566 篇文章

已下架不支持订阅

#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 *ht = (HashTable *) malloc(sizeof(Hash

已下架不支持订阅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿甘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值