List <t>是一个链表吗?</t>

时间:2012-04-02 06:43:55

标签: c# .net

System.Collections.Generic.List<T>linked list 的类型(不是LinkedList<T>类)吗?

  

链接列表是由一组节点组成的数据结构,这些节点一起表示序列。在最简单的形式下,每个节点由一个数据和一个引用(换句话说,一个链接)组成,序列中的下一个节点。

     

Linear Linked List
  链接列表,其节点包含两个字段:整数值和指向下一个节点的链接。
最后一个节点链接到用于表示列表末尾的终止符。

     

wikipedia.org

如果是,它是什么样的链表?

2 个答案:

答案 0 :(得分:24)

不,List<T>由数组支持 - 它本质上是.NET 1.0的ArrayList的通用版本。来自文档:

  

List<T>类是ArrayList类的通用等价物。它使用一个数组实现IList<T>通用接口,该数组的大小根据需要动态增加。

请注意,由于数组支持,它通过索引器访问的是O(1),而不是链表的O(N)。

如果您想要链接列表,请使用LinkedList<T>。请注意,这是一个双重链接列表。我不相信.NET会公开单个链接的列表类型。

答案 1 :(得分:4)

从技术角度来看,

List<T> 是一种链接列表。

如果您想在C#中使用链接列表:

  • 使用内置的LinkedList<T>类型(用于双链接 列表)
  • 或创建自己的实现(如果你想要一个 单链接的) - here's an example