Arrays 堆栈和队列实现中操作的时间复杂性

Arrays 堆栈和队列实现中操作的时间复杂性,arrays,list,stack,queue,Arrays,List,Stack,Queue,我正在研究数据结构,对堆栈和队列的不同实现中的时间复杂性有一些疑问 对于队列,如果元素可以在前端或后端排队,则动态数组实现在末尾和开头为插入提供O(1)个摊销时间。链表实现提供了一个O(1)实现 对于堆栈,如果可以在列表的开头或结尾添加节点,则单链表和数组实现都会产生O(1)时间复杂度 我是对的还是我遗漏了什么 如果在下一个插入位置上保持索引,则插入操作将花费恒定的时间,因此O(1)是正确的 但是如果没有维护索引,那么我们需要搜索插入新元素的正确位置,插入此元素所需的时间将随着数据结构中元素的数

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

对于队列,如果元素可以在前端或后端排队,则动态数组实现在末尾和开头为插入提供O(1)个摊销时间。链表实现提供了一个O(1)实现

对于堆栈,如果可以在列表的开头或结尾添加节点,则单链表和数组实现都会产生O(1)时间复杂度


我是对的还是我遗漏了什么

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

但是如果没有维护索引,那么我们需要搜索插入新元素的正确位置,插入此元素所需的时间将随着数据结构中元素的数量线性增加,因此在这种情况下插入时间将为O(n)