繁体   English   中英

实现数据结构-Flex词典

[英]Implementing data structure - flex dictionary

我被要求设计一个代表字典的数据结构。 该词典包含具有不同键号的项目。 数据结构应在O(1)时间内支持以下操作:insert(x),delete(x),findMin(),findMax(),successor(x),predecessor(x)。 search(x)操作也应在O(log n)时间内进行。

分配是在以下主题上进行的:跳过列表,哈希表和堆。 我想最好的结构将是一个跳过列表,但是我找不到在O(1)例行中实现插入和删除的方法。 有什么建议么?

您应该同时使用哈希表和跳过列表数据结构。 您可以在每次插入元素时更新minmax 因此, findMin()findMax()也是O(1)
insert()delete()也处于恒定时间。

顺便说一句,您无法在搜索之前删除项目。 如果确实在O(logn)搜索,则delete()将自动为O(logn)

哈希表提供(如果正确实现),搜索,删除和插入O(1) 其余操作( successor()predecessor() )在跳过列表中可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM