在Stack(LIFO)情况下: 如果我在链表中使用命令peek(),则复杂度为0(n)。为什么会这样,因为我只阅读列表的最后一个对象?它应该是0(1)吗? 在队列(FIFO)中:如果我在链表中使用peek(),则复杂度现在为0(1)。 为什么会有区别?
感谢您花时间阅读和帮助。
答案 0 :(得分:0)
你确定这种复杂性吗?访问堆栈的顶部元素是0(1),所有操作(例如push()和pop()都是如此,因为它们与堆栈的大小无关。
如果你想访问堆栈的底部,你会得到0(n)(因为你需要从元素的顶部元素一直向下)。
你从哪里获得了这种复杂性?