【问题标题】:Singly-linked list representing stack表示堆栈的单链表
【发布时间】:2016-03-08 19:48:48
【问题描述】:

为什么只有节点之间的链接指向顶部(较新)到底部(较旧)的方向时,我们才能使用单链表来表示堆栈?

【问题讨论】:

    标签: java list stack singly-linked-list


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2014-11-13
        • 1970-01-01
        • 2012-10-25
        • 2013-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-30
        • 2017-12-23
        相关资源
        最近更新 更多