c#单链表如何实现插入操作

avatar
作者
猴君
阅读量:0

在C#中,实现单链表的插入操作需要遵循以下步骤:

  1. 定义一个表示链表节点的类ListNode<T>,其中T是要存储的数据类型。节点类包含一个指向下一个节点的引用和一个存储数据的成员变量。
public class ListNode<T> {     public T Data { get; set; }     public ListNode<T> Next { get; set; }      public ListNode(T data)     {         Data = data;         Next = null;     } } 
  1. 创建一个表示单链表的类LinkedList<T>,其中包含一个指向链表头部的引用。
public class LinkedList<T> {     public ListNode<T> Head { get; set; }      public LinkedList()     {         Head = null;     } } 
  1. LinkedList<T>类中实现插入操作的方法Insert,该方法接受两个参数:要插入的数据和插入位置。插入位置可以是链表的头部、尾部或指定节点的后面。
public void Insert(T data, int position) {     if (position < 0)     {         throw new ArgumentOutOfRangeException(nameof(position), "Invalid position");     }      ListNode<T> newNode = new ListNode<T>(data);      if (position == 0)     {         newNode.Next = Head;         Head = newNode;         return;     }      ListNode<T> currentNode = Head;     int currentIndex = 0;      while (currentNode != null && currentIndex < position - 1)     {         currentNode = currentNode.Next;         currentIndex++;     }      if (currentNode == null)     {         throw new ArgumentOutOfRangeException(nameof(position), "Position out of range");     }      newNode.Next = currentNode.Next;     currentNode.Next = newNode; } 

现在,你可以使用LinkedList<T>类创建一个单链表,并使用Insert方法在指定位置插入数据。例如:

var list = new LinkedList<int>(); list.Insert(1, 0); list.Insert(2, 1); list.Insert(3, 2); 

这将创建一个包含整数1、2和3的链表。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!