【发布时间】:2016-03-08 19:48:48
【问题描述】:
为什么只有节点之间的链接指向顶部(较新)到底部(较旧)的方向时,我们才能使用单链表来表示堆栈?
【问题讨论】:
标签: java list stack singly-linked-list
为什么只有节点之间的链接指向顶部(较新)到底部(较旧)的方向时,我们才能使用单链表来表示堆栈?
【问题讨论】:
标签: java list stack singly-linked-list
因为否则像 pop() 这样的操作将采用 O(n) 而不是 O(1) 并且与其他操作相同。
表示堆栈意味着访问最后插入的项目是最简单的(更少的时间)。
【讨论】:
好的,我现在明白了,删除单链表的头部需要 O(1) 时间,删除尾部需要 O(n) 时间,因为您必须进行线性搜索才能找到指向尾部的节点并使该节点指向null。因此,如果堆栈是尾对头(每个指针指向堆栈顶部),每次弹出时都需要 O(n),而不是 O(1),因为堆栈是从头到尾实现的(每个指针都指向底部)堆栈)。
【讨论】: