在C#中,實現單鏈表的插入操作需要遵循以下步驟:
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;
}
}
LinkedList<T>
,其中包含一個指向鏈表頭部的引用。public class LinkedList<T>
{
public ListNode<T> Head { get; set; }
public LinkedList()
{
Head = null;
}
}
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的鏈表。