根据这本很棒的书,另一方面,size总是需要n步,因为如果不从头到尾遍历,就无法知道链表中有多少节点。因此,长度为0 (n)."。
我想知道为什么你不能在UnorderedList类中有一个属性,可以在分别添加或删除节点时递增或递减。这是本书中"size"的具体实现吗?
我想知道为什么你不能有一个属性在UnorderedList类可以在添加或删除节点时递增或递减分别。这是特定于"size"的实现吗书吗?
显然,一些链表实现可以通过增加或减少数字属性来优化其项计数。
但是在没有这种优化的情况下,除了迭代整个集合之外,没有其他方法来计数链表项。
当然,您可以将长度保存在一个变量中,这样您就不必一次又一次地查询它。本书使用了一个不需要这个加号变量的实现,但是size函数的复杂度是O(N)。大小权衡的复杂性。