温馨提示×

C#双向链表节点的删除与插入

c#
小樊
82
2024-08-23 15:38:33
栏目: 编程语言

双向链表是一种数据结构,其中每个节点都包含两个指针,一个指向前一个节点,一个指向后一个节点。在C#中,可以使用自定义类来实现双向链表节点的删除与插入操作。

以下是一个简单的双向链表节点类示例:

public class Node
{
    public int Value { get; set; }
    public Node Prev { get; set; }
    public Node Next { get; set; }

    public Node(int value)
    {
        Value = value;
        Prev = null;
        Next = null;
    }
}

现在我们来实现双向链表节点的删除和插入操作:

public class DoublyLinkedList
{
    private Node head;

    public void Insert(int value)
    {
        Node newNode = new Node(value);
        if (head == null)
        {
            head = newNode;
        }
        else
        {
            Node current = head;
            while (current.Next != null)
            {
                current = current.Next;
            }
            current.Next = newNode;
            newNode.Prev = current;
        }
    }

    public void Delete(int value)
    {
        Node current = head;
        while (current != null)
        {
            if (current.Value == value)
            {
                if (current.Prev != null)
                {
                    current.Prev.Next = current.Next;
                }
                if (current.Next != null)
                {
                    current.Next.Prev = current.Prev;
                }
                if (current == head)
                {
                    head = current.Next;
                }
                break;
            }
            current = current.Next;
        }
    }
}

在上面的示例中,我们首先定义了一个Node类来表示双向链表的节点。然后我们定义了一个DoublyLinkedList类,其中包含InsertDelete方法来插入和删除节点。

Insert方法中,我们首先创建一个新的节点,并根据链表是否为空来确定是否将其设置为头节点或者将其添加到链表末尾。在Delete方法中,我们遍历链表查找要删除的节点,并将其从链表中移除。

通过使用上述代码,可以轻松地在C#中实现双向链表节点的删除和插入操作。

0