改善数据结构

时间:2014-04-24 13:08:17

标签: linked-list runtime time-complexity doubly-linked-list

如果我有一个像堆栈一样的数据结构,我使用Doubly Linked列表实现,我还添加了一个始终保持中间元素的指针。

我想通过在O(log(k))中添加一个方法peekAt(k)来修改它,它将返回Kth插入元素。

linked list

任何想法我该怎么做?感谢。

1 个答案:

答案 0 :(得分:1)

如果您将其实施为double linked list,则无法在k-th时间内返回O(log(k))元素,因为链接列表无法随机访问元素。我建议您将堆栈实现为(dynamic) array,而不是O(1)访问权限。

修改

如果您想在任何地方快速insertion / deletion,那么我建议使用balanced binary tree