温馨提示×

C#中双向链表的实现方式

c#
小樊
90
2024-08-23 15:35:30
栏目: 编程语言

在C#中可以通过自定义双向链表类来实现双向链表。以下是一个简单的双向链表的实现方式:

public class Node<T>
{
    public T Data { get; set; }
    public Node<T> Next { get; set; }
    public Node<T> Previous { get; set; }

    public Node(T data)
    {
        Data = data;
        Next = null;
        Previous = null;
    }
}

public class DoublyLinkedList<T>
{
    private Node<T> head;
    private Node<T> tail;

    public void Add(T data)
    {
        Node<T> newNode = new Node<T>(data);

        if (head == null)
        {
            head = newNode;
            tail = newNode;
        }
        else
        {
            tail.Next = newNode;
            newNode.Previous = tail;
            tail = newNode;
        }
    }

    public void Print()
    {
        Node<T> current = head;

        while (current != null)
        {
            Console.WriteLine(current.Data);
            current = current.Next;
        }
    }

    // 可以添加其他方法,如在指定位置插入节点、删除节点等
}

使用示例:

DoublyLinkedList<int> list = new DoublyLinkedList<int>();
list.Add(1);
list.Add(2);
list.Add(3);

list.Print();

以上代码实现了一个简单的双向链表,可以通过Add方法添加节点,并通过Print方法打印链表中的所有节点。在实际应用中,可以根据需要添加其他方法来操作双向链表。

0