【发布时间】:2017-03-22 19:39:02
【问题描述】:
在堆栈 (LIFO) 情况下: 如果我在链表中使用命令 peek(),复杂度为 0(n)。为什么会这样,因为我只读取了列表的最后一个对象?它应该是0(1)吗? 在队列中(FIFO):如果我在链表中使用 peek(),复杂度现在是 0(1)。 为什么会有区别?
感谢您花时间阅读和帮助。
【问题讨论】:
标签: linked-list stack queue time-complexity big-o
在堆栈 (LIFO) 情况下: 如果我在链表中使用命令 peek(),复杂度为 0(n)。为什么会这样,因为我只读取了列表的最后一个对象?它应该是0(1)吗? 在队列中(FIFO):如果我在链表中使用 peek(),复杂度现在是 0(1)。 为什么会有区别?
感谢您花时间阅读和帮助。
【问题讨论】:
标签: linked-list stack queue time-complexity big-o
您确定这种复杂性吗?访问堆栈的顶部元素是 0(1),所有操作如 push() 和 pop() 都是如此,因为它们与堆栈的大小无关。
如果您想要访问堆栈的底部,您将得到 0(n)(因为您需要从顶部逐个元素一直向下)。
你是从哪里得到这种复杂性的?
【讨论】: