中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
潮州市| 宜川县| 定西市| 定安县| 长海县| 伊金霍洛旗| 繁昌县| 东城区| 门源| 江阴市| 文成县| 桓台县| 屏东县| 新津县| 司法| 郯城县| 卓尼县| 肃宁县| 荆州市| 定结县| 河东区| 中阳县| 漳州市| 沙洋县| 小金县| 靖远县| 锡林浩特市| 郎溪县| 图木舒克市| 丰宁| 武清区| 台东市| 铜川市| 宜城市| 淮安市| 孟村| 桐柏县| 南皮县| 定日县| 凉城县| 大新县|