Java 表示堆栈的单链表

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

为什么只有当节点之间的链接指向从上(新)到下(旧)的方向时,我们才能使用单链表来表示堆栈呢?

,因为否则像
pop()
这样的操作将采用
O(n)
而不是
O(1)
,与其他操作相同。
表示堆栈意味着访问最后插入的项最容易(时间更短)

好的,我现在明白了,删除单链接列表的头需要O(1)个时间,删除尾部需要O(n)个时间,因为必须进行线性搜索才能找到指向尾部的节点,并使该节点指向null。因此,如果堆栈是尾对尾的(每个指针指向堆栈顶部),则每次弹出时都需要O(n),而对于实现了头对尾的堆栈(每个指针指向堆栈底部),则需要O(1)