使用LinkedList实现的Stack抽象数据类型的put(x)和get()函数的时间复杂度是多少?使用链接列表实现的堆栈ADT的时间复杂度
我首先想到的是他们都是O(1)。但是,如果get()必须从头节点遍历到列表中的最后一个元素以找到要移除并返回的元素,则get()函数将为O(n)。
put(x)函数也必须遍历整个列表才能找到最后一个节点,它将安装一个新节点。所以这也是O(n)。
如果使用LinkedList的“专用”版本,它总是保持一个指向列表中最后一个节点的指针,这些都将成为恒定时间操作。我正确理解LinkedList的标准实现不可用吗?
这样一个简单而优雅的答案..谢谢Viktor – Sreekar