icoding哈希表创立

思路:主要是数据结构看着很呆 分析问题从最大的结构入手 最大的是HashTable 然后找到 HASH_RESULT 是枚举的结构 不同多说 是一个分类 然后是 指向元素为HashEntry*指针数组bucket Entry里面还有结构key和value以及hash entry*next(暗示了要用的是链地址法处理冲突)结构大概就是这些

然后考虑具体的初始化

首先开一个HashTable *H 然后给这个结构内存空间 没给上就NULL  然后细化(给内存)每一个结构的指针。(指针给内存 结构,联合,枚举不用分配内存)然后利用memset(属于string.h头文件里面)吧数据全部重置清空,再吧H搞定即可。

HashTable* create_hash(int size)
{
	HashTable* H;
	H = (HashTable*)malloc(1 * sizeof(HashTable));
	if (H == NULL)
		return NULL;
	H->bucket = (HashEntry**)malloc(size * sizeof(HashEntry*));
	if (H->bucket == NULL) {
		free(H);
		return NULL;
	}
	memset(H->bucket, 0, size * sizeof(HashEntry*));
	H->size = size;
	H->last_error = HASH_OK;
	return H;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值