91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C#雙向鏈表的插入與刪除操作

c#
小樊
83
2024-08-29 04:46:58
欄目: 編程語言

在C#中,雙向鏈表是一種數據結構,其中每個節點都有兩個指針,一個指向前一個節點,另一個指向后一個節點

首先,我們需要定義一個雙向鏈表節點類:

public class DoublyLinkedListNode<T>
{
    public T Value;
    public DoublyLinkedListNode<T> Previous;
    public DoublyLinkedListNode<T> Next;

    public DoublyLinkedListNode(T value)
    {
        Value = value;
        Previous = null;
        Next = null;
    }
}

接下來,我們可以實現插入和刪除操作:

public class DoublyLinkedList<T>
{
    public DoublyLinkedListNode<T> Head;
    public DoublyLinkedListNode<T> Tail;

    // 在鏈表頭部插入節點
    public void InsertAtHead(T value)
    {
        var newNode = new DoublyLinkedListNode<T>(value);
        if (Head == null)
        {
            Head = newNode;
            Tail = newNode;
        }
        else
        {
            newNode.Next = Head;
            Head.Previous = newNode;
            Head = newNode;
        }
    }

    // 在鏈表尾部插入節點
    public void InsertAtTail(T value)
    {
        var newNode = new DoublyLinkedListNode<T>(value);
        if (Tail == null)
        {
            Head = newNode;
            Tail = newNode;
        }
        else
        {
            newNode.Previous = Tail;
            Tail.Next = newNode;
            Tail = newNode;
        }
    }

    // 刪除指定值的節點
    public void Delete(T value)
    {
        var currentNode = Head;
        while (currentNode != null)
        {
            if (currentNode.Value.Equals(value))
            {
                if (currentNode.Previous != null)
                    currentNode.Previous.Next = currentNode.Next;
                else
                    Head = currentNode.Next;

                if (currentNode.Next != null)
                    currentNode.Next.Previous = currentNode.Previous;
                else
                    Tail = currentNode.Previous;
            }
            currentNode = currentNode.Next;
        }
    }
}

這里我們實現了三個方法:InsertAtHead用于在鏈表頭部插入節點,InsertAtTail用于在鏈表尾部插入節點,Delete用于刪除指定值的節點。你可以根據需要調用這些方法來操作雙向鏈表。

0
黑龙江省| 永和县| 固镇县| 宣武区| 库尔勒市| 微山县| 沂南县| 浙江省| 香格里拉县| 册亨县| 永吉县| 茶陵县| 崇左市| 师宗县| 个旧市| 中卫市| 沁水县| 丰镇市| 太湖县| 桐乡市| 濉溪县| 托克托县| 喀喇| 宜良县| 含山县| 舒兰市| 区。| 淮滨县| 介休市| 南郑县| 竹山县| 科尔| 沂水县| 石阡县| 崇礼县| 河源市| 新竹县| 繁昌县| 武汉市| 桃江县| 白朗县|