📜  C#LinkedList(1)

📅  最后修改于: 2023-12-03 15:00:14.336000             🧑  作者: Mango

C#LinkedList介绍

概述

C#LinkedList是C#语言提供的一种链表数据结构。它可以存储一组有序的元素,并且支持动态添加、删除等操作。

结构

C#LinkedList由一个个节点(node)构成,每个节点包含一个数据元素(value)和两个指针(next, prev)。

  • value:存储该节点的数据元素。
  • next:指向下一个节点。
  • prev:指向上一个节点。

链表的头节点(head)和尾节点(tail)分别为第一个和最后一个节点,它们的指针分别赋为null。

使用
创建
LinkedList<int> linkedList = new LinkedList<int>();
插入
  • 在链表末尾插入一个节点
linkedList.AddLast(1);
  • 在链表头部插入一个节点
linkedList.AddFirst(0);
  • 在指定节点之前插入一个节点
LinkedListNode<int> node = linkedList.Find(1); // 查找节点
linkedList.AddBefore(node, 1);
  • 在指定节点之后插入一个节点
LinkedListNode<int> node = linkedList.Find(1); // 查找节点
linkedList.AddAfter(node, 2);
删除
  • 删除第一个节点
linkedList.RemoveFirst();
  • 删除最后一个节点
linkedList.RemoveLast();
  • 删除指定节点
LinkedListNode<int> node = linkedList.Find(1); // 查找节点
if (node != null)
{
    linkedList.Remove(node);
}
遍历
foreach (int value in linkedList)
{
    Console.WriteLine(value);
}
总结

C#LinkedList虽然相对于数组来说,插入、删除的性能更好,但是由于其随机访问的复杂度较高,无法像数组那样通过下标随机访问元素。因此,在使用时要根据实际场景选择合适的数据结构。