在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方法打印链表中的所有节点。在实际应用中,可以根据需要添加其他方法来操作双向链表。