【发布时间】:2012-08-22 07:44:48
【问题描述】:
我正在实现一个数据结构;项目在范围内的双链表。我想在 O(1) 中查找一个项目是否存在。为此,我想散列键将是项目和值将是节点的节点。
在 Java 中,有内置函数支持这种特性。
编辑:简而言之,我想要 C 语言中的 hashMap 之类的东西。
我应该怎么做才能在 C 中实现它?
【问题讨论】:
-
你的意思是C语言中的hashCode实现吗?如果是这样 - 没有类似的开箱即用。
-
我不认为他的意思是
hashCode()实现;我认为您对该功能的作用感到困惑。我认为他的意思是 Map 或 HashMap 之类的东西,它们允许您将项目放入集合中并在 O(1) 中检索它们。 -
您需要做更多的研究并澄清您想要的内容。请注意,您没有提供任何示例,即使是伪代码,也没有提供您尝试过的示例。另外,这是做作业的吗?哈希双向链表的实现是学习 C 的一个相当入门的任务。
-
@NathanielFord 好吧,如果他说“结构”——我同意你的观点,但他说“功能”——这与 hashCode 而不是 HashMap 更相关。
-
@jdevelop 不是在他谈论键值对时,但我同意他并没有说清楚。没有样本输入/输出,甚至没有讨论他是否想要 O(1) 或摊销 O(1),某些树结构最好。或者他是否关心插入时间。
标签: c linked-list hash