哈希表、哈希列表和哈希树有何区别?(涉及IT技术)

25

哈希表、哈希链表和哈希树有何不同之处?它们各自在什么情况下使用?什么时候哈希表比哈希树更为优越。


1
集合、列表和树之间有什么区别?现在再加上哈希。 - Amy B
10
我在维基百科上没看懂太多,所以我来这里寻找更好的答案。 - Passionate programmer
1个回答

28
  • 哈希表:一种数据结构,可以在其中插入键值对(key, value),其中key用于计算哈希码,以决定存储与其键相关联的值的位置。这种结构很有用,因为计算哈希码的时间复杂度是O(1),所以您可以在常数时间内查找或放置一个项。(注意,有一些细节和不同的实现会略微改变这种性能)
  • 哈希列表:它只是一个包含多个数据块计算出的哈希码的列表。例如:您将文件分成许多部分,并为每个部分计算哈希码,然后将所有哈希码存储在列表中。然后,您可以使用该列表来验证数据的完整性。
  • 哈希树:它类似于哈希列表,但是您拥有了一个树,因此树中的每个节点都是在其子节点上计算出的哈希码。当然,叶子节点将是从中开始计算哈希码的数据。

哈希表通常很有用(也称为哈希映射),而哈希列表哈希树则更具体,适用于特定的用途。


1
我正在尝试为我的数据挖掘项目实现Apriori算法,而HashTree是计算生成的候选项支持计数的良好数据结构。 有人能否说明如何实现哈希树(因为我在网络上找不到好的信息)。 任何帮助将不胜感激,谢谢! - saurcery
3
假设“哈希树”是“Merkle树”的同义词。此外,还有一个以这个名字命名的通用数据结构 - Fred Foo
哈希表:它是一种数据结构,可以根据哈希键返回的索引访问桶数组。不需要有与键不同的值-当没有时,通常称为哈希集(与哈希映射不同,在哈希映射中有一个明确的值)。 - Tony Delroy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接