溫馨提示×

如何利用C#泛型實現雙向鏈表

c#
小樊
108
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女