我需要一个支持两种操作的数据结构 - 删除和搜索。现在,删除操作应该运行在摊销 O(1)时间,而搜索应该运行在O(log n) time.
搜索操作应该如下工作:查找指定的值,如果它在这里,则返回值本身。否则,返回最接近的较大值(返回有序后继)。
这个数据结构可能是什么?
它可以是一对数据结构:
- 二叉搜索树,保存值
- 哈希表,保存指向二叉搜索树中节点的指针
当你想要搜索时,在二叉搜索树中进行搜索的时间为 O(log n) 。
当要删除时,首先以摊销 O(1) 的方式在哈希表中查找节点,然后以摊销 O(1) 的方式在二叉搜索树中删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)