C语言实现对哈希表的操作:插入新键值对与删除哈希表中键值对
一. 简介
前面文章简单学习了C语言创建哈希表,扩容哈希表,向哈希表中插入新的键值对等操作,文章如下:
C语言实现对哈希表的操作:创建哈希表与扩容哈希表-CSDN博客
本文继续学习对哈希表的其他操作:查找键值对,删除键值对,销毁哈希表等等操作。
二. C语言实现对哈希表的操作:插入新键值对与删除哈希表中键值对
1. 在哈希表中查找键值对
在哈希表中查找键值对的代码实现如下:
//查找键值对
int hash_table_find(hash_table* ht, char* key) {int index = hash_func(key) % ht->capacity;hash_node* node = ht->buckets[index];while(node != NULL) {if(!strcmp(node->key, key)) {return node->value;}node = node->next;}return -1;
}
可以看出,首先通过待寻找的键key,计算所在哈希表中的哪个桶中。
然后遍历(在对应桶的)链表即可。
2. 删除哈希表中的某个键值对
3. 销毁哈希表