任何人都可以告诉我,如果一个链表结构将被允许增长大于等效List(假设列表使用加倍策略来增加内部数组的大小) 。LinkedList内存消耗与使用大型数组时的列表
因此给定一个结构,比如说40字节(我知道关于16字节和结构的东西,但我在这里使用一些遗留代码,它不会是一个简单的选项,将结构更改为类)我的理解是每次列表的内部数组被调整大小时,都需要为新数组分配内存(new_array_size * 40)。因此,对于一个非常大的阵列,最终会导致内存不足,因为没有足够大的连续空间来创建这个新阵列。我知道链表需要为每个元素(节点)留出更多的空间,因为它需要保持向前和反向指向列表中的项的指针,但是我的问题是这是否意味着要添加额外的元素,您只需要一个连续的内存插槽(40 + the_space_needed_for_the_pointers)。换句话说,链表不会因分配一个巨大的连续内存的新部分而受到影响。
感谢您的回复。我几次阅读了Scott Mitchell关于数据结构的文章,我相信我会回头再看一遍。我目前的问题并不需要除了能够遍历列表之外的任何事情。 – Andrew 2010-05-07 12:16:26