表示栈的单向链表
Singly-linked list representing stack
为什么只有节点之间的链接指向从上(新)到下(旧)的方向才能用单链表来表示栈?
因为像 pop()
这样的操作将采用 O(n)
而不是 O(1)
并且与其他操作相同。
表示堆栈意味着访问最后插入的项目是最简单的(更少的时间)。
好的,我现在明白了,移除单向链表的头部需要 O(1) 时间,移除尾部需要 O(n) 时间,因为你必须进行线性搜索才能找到指向的节点尾部并使该节点指向空。因此,如果堆栈是从头到尾(每个指针指向堆栈顶部),则每次弹出时都需要 O(n),而不是 O(1) 实现从头到尾的堆栈(每个指针指向底部)堆栈)。
为什么只有节点之间的链接指向从上(新)到下(旧)的方向才能用单链表来表示栈?
因为像 pop()
这样的操作将采用 O(n)
而不是 O(1)
并且与其他操作相同。
表示堆栈意味着访问最后插入的项目是最简单的(更少的时间)。
好的,我现在明白了,移除单向链表的头部需要 O(1) 时间,移除尾部需要 O(n) 时间,因为你必须进行线性搜索才能找到指向的节点尾部并使该节点指向空。因此,如果堆栈是从头到尾(每个指针指向堆栈顶部),则每次弹出时都需要 O(n),而不是 O(1) 实现从头到尾的堆栈(每个指针指向底部)堆栈)。