Stack / Queue中链表/双链表的复杂性?

时间:2017-03-22 19:39:02

标签: linked-list stack queue time-complexity big-o

在Stack(LIFO)情况下: 如果我在链表中​​使用命令peek(),则复杂度为0(n)。为什么会这样,因为我只阅读列表的最后一个对象?它应该是0(1)吗? 在队列(FIFO)中:如果我在链表中​​使用peek(),则复杂度现在为0(1)。 为什么会有区别?

感谢您花时间阅读和帮助。

1 个答案:

答案 0 :(得分:0)

你确定这种复杂性吗?访问堆栈的顶部元素是0(1),所有操作(例如push()和pop()都是如此,因为它们与堆栈的大小无关。

如果你想访问堆栈的底部,你会得到0(n)(因为你需要从元素的顶部元素一直向下)。

你从哪里获得了这种复杂性?