目录
LinkedList <T> 类 表示双向链表。
该类在 System.Collections.Generic 命名空间。
有关 LinkedListNode<T> Class 类的详情点击这里, 该类是 LinkedList <T> 类 中的 节点。
LinkedList <T> 是一个双向链表, 其元素指向它前面和后面的元素, 如图所示。这样就可以通过移动到下一个元素可以正向遍历整个链表, 通过移动到前一个元素可以反向遍历整个链表。
链表的优点:
- 如果将元素插入列表的中间位置, 使用链表就会非常快。在插入一个元素时, 只需要修改上一个元素的Next引用和下一个元素的Previous引用, 使它们引用所插入的元素。在 List<T> 类中, 插入一个元素时, 需要移动该元素后面的所有元素。
链表的缺点:
- 链表的元素只能一个接一个地访问, 这需要较长的时间来查找位于链表中间或尾部的元素。
LinkedList<T> Constructors
public LinkedList (); public LinkedList (System.Collections.Generic.IEnumerable<T> collection); protected LinkedList (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
- 如果LinkedList<T>为空,则 First 并 Last 属性包含
null
。- 如果 collection 没有元素,则 LinkedList <T>为空,First 和 Last 属性包含 null。
static void Main(string[] args) { string[] temp = { "huang", "cheng", "tao" }; var numbers = new LinkedList<string>(); // 使用默认构造函数初始化,该实例为空并且具有默认初始容量。 // 该实例包含从指定集合复制的元素并且具有足够的容量来容纳所复制的元素。 var queueCopy = new LinkedList<string>(temp); var queueCopy2 = new LinkedList<string>(new string[] { "sda", "da" }); }
Propertys
LinkedList<T>.Count
public int Count { get; }
- 获取 LinkedList<T> 中所有的元素数。
- 此操作的复杂度为 O(1)。
LinkedList<T>.First
public System.Collections.Generic.LinkedListNode<T> First { get; }
- 获取 LinkedList<T> 的第一个节点元素。
- 返回的是 LinkedList <T>的中的 第一个 LinkedListNode<T> 类型的元素值。
- 如果LinkedList<T>为空,First并Last属性包含
null
。- 检索此属性的值的运算复杂度为 O(1)。
static void Main(string[] args) { var numbers = new LinkedList<string>(new string[] { "huang","cheng","tao"}) ; WriteLine(numbers.First.Value); }
LinkedList<T>.Last
- 获取 LinkedList<T> 的最后一个节点元素。
- 返回的是 LinkedList <T>的中的 最后一个 LinkedListNode<T> 类型的元素值。
- 如果LinkedList<T>为空,First 并Last 属性包含
null
。- 检索此属性的值的运算复杂度为 O(1)。
static void Main(string[] args) { var numbers = new LinkedList<string>(new string[] { "huang","cheng","tao"}) ; WriteLine(numbers.Last.Value); }
Methods
LinkedList<T>.AddAfter
public void AddAfter (System.Collections.Generic.LinkedListNode<T> node, System.Collections.Generic.LinkedListNode<T> newNode);