为什么链表的长度 属性 O(n)
Why is length property O(n) for linkedlist
根据这个真的很棒book,“另一方面,size总是需要n步,因为没有办法知道链表中有多少节点从头到尾遍历。因此,长度为O(n).”。
我想知道为什么你不能在 UnorderedList class 中有一个 属性 可以在添加或删除节点时分别递增或递减。这是否特定于本书中 "size" 的实现?
当然你可以把长度保存在一个变量中,这样你就不用反复查询了。书中使用了不需要this加变量的实现,但是size函数的复杂度是O(N)。大小权衡的复杂性。
I was wondering why can't you have a property in UnorderedList class
that can be incremented or decremented when a node is added or removed
respectively. Is this specific to the implementation of "size" in this
book?
显然,某些 链表 实现可能会通过递增或递减数字 属性.
来优化对其项目的计数
但是如果没有这种优化,除了迭代整个集合之外,没有其他方法来计算 链表 项。
根据这个真的很棒book,“另一方面,size总是需要n步,因为没有办法知道链表中有多少节点从头到尾遍历。因此,长度为O(n).”。
我想知道为什么你不能在 UnorderedList class 中有一个 属性 可以在添加或删除节点时分别递增或递减。这是否特定于本书中 "size" 的实现?
当然你可以把长度保存在一个变量中,这样你就不用反复查询了。书中使用了不需要this加变量的实现,但是size函数的复杂度是O(N)。大小权衡的复杂性。
I was wondering why can't you have a property in UnorderedList class that can be incremented or decremented when a node is added or removed respectively. Is this specific to the implementation of "size" in this book?
显然,某些 链表 实现可能会通过递增或递减数字 属性.
来优化对其项目的计数但是如果没有这种优化,除了迭代整个集合之外,没有其他方法来计算 链表 项。