Data structures 哈希表必须使用数组实现吗?

Data structures 哈希表必须使用数组实现吗?,data-structures,Data Structures,哈希表必须使用数组实现吗?另一种数据结构能否达到同样的效率?若有,原因为何?如果否,数据结构必须满足什么条件才能确保与阵列提供的效率相同 哈希表必须使用数组实现吗 不可以。您可以使用array之外的其他数据结构实现哈希表接口。例如红黑树(爪哇树)。 这提供了O(logN)访问时间。 但是哈希表预计将有O(1)访问时间(在最佳情况下-无冲突)。 这只能通过提供恒定时间内随机访问可能性的阵列来实现 数据结构必须满足什么条件才能确保相同 阵列提供的效率 必须具有与阵列相当的性能(小于O(N))。树映射

哈希表必须使用数组实现吗?另一种数据结构能否达到同样的效率?若有,原因为何?如果否,数据结构必须满足什么条件才能确保与阵列提供的效率相同

哈希表必须使用数组实现吗

不可以。您可以使用array之外的其他数据结构实现
哈希表
接口。例如红黑树(爪哇树)。
这提供了
O(logN)
访问时间。
但是
哈希表
预计将有
O(1)
访问时间(在最佳情况下-无冲突)。
这只能通过提供恒定时间内随机访问可能性的阵列来实现

数据结构必须满足什么条件才能确保相同 阵列提供的效率


必须具有与阵列相当的性能(小于
O(N)
)。树映射具有
O(logN)
所有操作的最差访问时间

我认为哈希表与基于比较的映射完全不同。这些差异不仅仅是理论上的,而且是隐藏的,它们涉及到对键的要求:哈希表需要哈希函数和等式,另一个需要一个总的顺序。@delnan:这取决于你如何解释OP。我的观点是,
哈希表是
字典
数据结构的实现/扩展。它提供了
字典
的接口。抽象数据结构可以有多种实现,例如由数组支持的
哈希表
,或由树支持的
树映射
。如果按照您建议的那样严格定义,则表示哈希函数的
哈希表
只能由数组支持,请您回答,很抱歉,回复太晚了,我总是忘记检查stackoverflow,再次谢谢你