用c语言实现hash映射 我需要在C中使用键和值,如C++中使用map。

用c语言实现hash映射 我需要在C中使用键和值,如C++中使用map。,c++,c,hashmap,hashcode,C++,C,Hashmap,Hashcode,请分享最简单的例子,以存储在c中的唯一键和值。键可以是任意字符串,值将是字符串 谢谢创建哈希映射需要一些工作,但绝对是一件有趣的事情 构建哈希映射的一般方法是创建一个名为bucket的数组,其中包含键和值。然而,这种结构不能处理碰撞。当哈希函数将不同的键分配给同一个值时,可能会出现两个值之间的冲突 为了解决这个问题,在bucket中添加了第三个字段,通常是指针。当发生冲突时,新值将添加到第三个字段(通常是链表或二叉树)指向的数据结构中。有关如何解决冲突的详细信息,请阅读此 上面描述的散列映射结构

请分享最简单的例子,以存储在c中的唯一键和值。键可以是任意字符串,值将是字符串


谢谢

创建哈希映射需要一些工作,但绝对是一件有趣的事情

构建哈希映射的一般方法是创建一个名为bucket的数组,其中包含键和值。然而,这种结构不能处理碰撞。当哈希函数将不同的键分配给同一个值时,可能会出现两个值之间的冲突

为了解决这个问题,在bucket中添加了第三个字段,通常是指针。当发生冲突时,新值将添加到第三个字段(通常是链表或二叉树)指向的数据结构中。有关如何解决冲突的详细信息,请阅读此

上面描述的散列映射结构的示例注意索引153处的冲突:

要访问哈希表,将对键应用一个自定义哈希函数,该函数返回一个标识数组索引位置的整数。最后,检查用于访问元素的键与哈希函数返回的索引处存储在数组中的键是否匹配。如果他们这样做了,您就找到了正确的元素

这只是一个例子;您可以找到不同的方法来实现哈希映射


此外,这个问题已经被提出。

有很多例子。K&R中有一个。仅供参考std::map不是哈希映射。这是一棵二叉树。无序映射是一个散列映射。哦,当你查过算法并写了一些代码后再来。谢谢,但上面的例子我已经看到它们非常复杂。有没有其他方法?要存储动态唯一密钥和值,我已更新了答案。尝试阅读我链接的教程。它既彻底又容易理解。我希望它有用。