【问题标题】:Benefit and disadvantage of linked list or array implementation of list [duplicate]list的链表或数组实现的优缺点[重复]
【发布时间】:2013-10-13 15:55:27
【问题描述】:

与基于数组的数组实现相比,List 的 Linked-List 实现有哪些优势,反之亦然?

对于初学者,我知道链表比数组占用更多空间,因为它必须使用额外的 4 字节空间来保存对下一个节点的引用,而数组不必这样做。所以数组使用的空间更少。

与数组实现相比,链表的优势在于数组在初始化时具有固定大小,您必须编写代码来增加数组的大小,因此与链表实现相比,这可能是一个劣势。

还有什么其他关于优势-劣势的想法吗?

【问题讨论】:

标签: c# arrays linked-list


【解决方案1】:

对于数组,如果您有索引,则可以访问任何元素(恒定时间复杂度 O(1) )。但是对于一个列表,虽然你有索引,但你必须一个一个地迭代才能访问(时间复杂度 O(n))

对于一个列表,插入和删除一个元素需要恒定的时间 (O(1))。但是对于数组,插入和删除需要 O(n) 时间。

对于排序,列表实现优于数组实现。

【讨论】:

  • 我喜欢您的回答,因为您对列表的两种实现之间的比较进行了更彻底的分析。推荐的 SO 帖子在数组和链接列表之间进行了更多的比较,这与我的直接问题有点无关。
猜你喜欢
  • 2012-05-15
  • 2014-09-07
  • 2016-07-02
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
  • 2016-06-18
  • 1970-01-01
  • 2014-03-21
相关资源
最近更新 更多