温馨提示×

如何利用C#泛型实现双向链表

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

实现双向链表可以借助 C# 中的泛型来实现。以下是一个简单的双向链表的示例代码:

using System;

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

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

public class LinkedList<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.Prev = tail;
            tail = newNode;
        }
    }

    public void Print()
    {
        Node<T> current = head;
        while (current != null)
        {
            Console.Write(current.Data + " ");
            current = current.Next;
        }
        Console.WriteLine();
    }
}

class Program
{
    static void Main()
    {
        LinkedList<int> list = new LinkedList<int>();
        list.Add(1);
        list.Add(2);
        list.Add(3);
        list.Print();
    }
}

在这个示例中,我们定义了一个 Node<T> 类表示链表中的节点,包含数据和指向前一个节点和后一个节点的引用。然后定义了一个 LinkedList<T> 类表示双向链表,包含添加节点和打印链表的方法。

你可以根据需要修改或扩展这个代码来实现更多功能。希望这个示例能够帮助到你实现双向链表。

0