如果我有一个像堆栈一样的数据结构,我使用Doubly Linked列表实现,我还添加了一个始终保持中间元素的指针。
我想通过在O(log(k))中添加一个方法peekAt(k)来修改它,它将返回Kth插入元素。
任何想法我该怎么做?感谢。
答案 0 :(得分:1)
如果您将其实施为double linked list
,则无法在k-th
时间内返回O(log(k))
元素,因为链接列表无法随机访问元素。我建议您将堆栈实现为(dynamic) array
,而不是O(1)
访问权限。
修改强>
如果您想在任何地方快速insertion / deletion
,那么我建议使用balanced binary tree
。