【问题标题】:Time complexity for operations in implementation of Stack and QueueStack和Queue实现中操作的时间复杂度
【发布时间】:2017-05-10 00:55:27
【问题描述】:

我正在研究数据结构,对堆栈和队列的不同实现中的时间复杂度有一些疑问。

对于队列,如果一个元素可以在头部或尾部排队,动态数组实现在结束和开始插入的时间为 O(1)。链表实现给出了 O(1) 实现。

对于堆栈,如果可以在列表的开头或末尾添加一个节点,那么单链表和数组实现都会给出 O(1) 的时间复杂度。

我是对的还是我错过了什么?

【问题讨论】:

    标签: arrays list stack queue


    【解决方案1】:

    如果您在下一个插入位置维护索引,则插入操作将花费恒定的时间,因此 O(1) 是正确的。

    但是如果没有维护索引,那么我们需要寻找正确的位置来插入新元素,并且插入这个元素所花费的时间会随着数据结构中元素的数量线性增加,所以在这个插入时间情况将是 O(n)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-04
      • 2016-12-16
      • 2016-01-06
      • 2019-01-23
      • 2012-11-27
      • 2012-03-17
      • 2014-08-22
      相关资源
      最近更新 更多