-1

我需要阻止 c 中的键和值,就像我们在 c++ 中使用 map 一样。

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

谢谢

4

1 回答 1

7

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

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

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

上面描述的哈希映射结构的示例(注意索引 153 处的冲突):哈希映射结构

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

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

另外,这个问题已经在这里问过了。

于 2013-08-05T07:04:29.203 回答