如何使用C#实现双向链表的逆序

   2024-10-01 5070
核心提示:在C#中,可以通过以下步骤实现双向链表的逆序:创建一个双向链表节点类,包含数据和指向前一个节点和后一个节点的指针。public c

在C#中,可以通过以下步骤实现双向链表的逆序:

创建一个双向链表节点类,包含数据和指向前一个节点和后一个节点的指针。
public class Node{    public int Data { get; set; }    public Node Prev { get; set; }    public Node Next { get; set; }    public Node(int data)    {        Data = data;        Prev = null;        Next = null;    }}
创建一个双向链表类,包含头节点和尾节点。
public class DoublyLinkedList{    public Node Head { get; set; }    public Node Tail { get; set; }    public DoublyLinkedList()    {        Head = null;        Tail = null;    }    // 添加节点的方法    public void AddNode(int data)    {        Node newNode = new Node(data);        if (Head == null)        {            Head = newNode;            Tail = newNode;        }        else        {            Tail.Next = newNode;            newNode.Prev = Tail;            Tail = newNode;        }    }    // 逆序双向链表的方法    public void Reverse()    {        Node current = Head;        Node temp = null;        while (current != null)        {            temp = current.Prev;            current.Prev = current.Next;            current.Next = temp;            current = current.Prev;        }        if (temp != null)        {            Head = temp.Prev;        }    }    // 打印链表的方法    public void PrintList()    {        Node current = Head;        while (current != null)        {            Console.Write(current.Data + " ");            current = current.Next;        }        Console.WriteLine();    }}
在主程序中使用双向链表类并调用逆序方法。
class Program{    static void Main(string[] args)    {        DoublyLinkedList list = new DoublyLinkedList();                list.AddNode(1);        list.AddNode(2);        list.AddNode(3);        list.AddNode(4);        list.AddNode(5);        Console.WriteLine("Original list:");        list.PrintList();        list.Reverse();        Console.WriteLine("Reversed list:");        list.PrintList();    }}

运行代码后,可以看到原始双向链表和逆序后的双向链表的输出结果。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号