Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 链表或列表数组实现的优缺点_C#_Arrays_Linked List - Fatal编程技术网

C# 链表或列表数组实现的优缺点

C# 链表或列表数组实现的优缺点,c#,arrays,linked-list,C#,Arrays,Linked List,链表的链表实现与基于数组的数组实现相比有哪些优势,反之亦然 首先,我知道链表比数组占用更多的空间,因为它必须使用额外的4字节空间来保存对下一个节点的引用,而数组不必这样做。所以数组使用更少的空间 链表相对于数组实现的优势在于,数组在初始化时具有固定的大小,您必须编写代码来增加数组的大小,因此与链表实现相比,这可能是一个劣势 对其他有利或不利的方面有什么想法吗?对于数组,如果您有索引,就可以访问任何元素(恒定时间复杂度O(1))。但是对于一个列表,尽管您有索引(时间复杂度O(n)),但您必须逐个迭

链表的链表实现与基于数组的数组实现相比有哪些优势,反之亦然

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

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


对其他有利或不利的方面有什么想法吗?

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

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


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

我喜欢您的答案,因为您对列表的两种实现之间的比较进行了更全面的分析。推荐的SO帖子更多的是比较数组和链表,这与我的直接问题有点无关。