温馨提示×

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

c#
小樊
83
2024-10-18 11:17:24
栏目: 编程语言

在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的链表。

0