为什么只有当节点之间的链接指向顶部(较新)到底部(较旧)的方向时,我们才能使用单链表来表示堆栈?
答案 0 :(得分:2)
因为pop()
之类的其他操作会使用O(n)
而不是O(1)
,而与其他操作相同。
表示堆栈意味着访问最后插入的项目是最简单的(更少的时间)。
答案 1 :(得分:-1)
好吧,我现在明白了,删除单链表的头部需要O(1)时间并删除尾部需要O(n)时间,因为你必须进行线性搜索才能找到指向尾部的节点并使该节点指向null。因此,如果堆栈是从头到尾(每个指针指向堆栈顶部),则每次弹出时都需要O(n)而不是O(1)对于从头到尾实现的堆栈(每个指针指向底部)堆栈)。