public DoublyLinkedList() { _head = null; _tail ="> public DoublyLinkedList() { _head = null; _tail =">
legongju.com
我们一直在努力
2025-01-13 15:39 | 星期一

利用C#实现双向链表的高级功能

在C#中,可以使用类来实现双向链表的高级功能

using System;

public class Node
{
    public int Value;
    public Node Previous;
    public Node Next;

    public Node(int value)
    {
        Value = https://www.yisu.com/ask/value;"hljs">public DoublyLinkedList()
    {
        _head = null;
        _tail = null;
    }

    // 在链表末尾添加节点
    public void Add(int value)
    {
        Node newNode = new Node(value);

        if (_head == null)
        {
            _head = newNode;
            _tail = newNode;
        }
        else
        {
            newNode.Previous = _tail;
            _tail.Next = newNode;
            _tail = newNode;
        }
    }

    // 删除指定值的节点
    public void Remove(int value)
    {
        Node current = _head;

        while (current != null)
        {
            if (current.Value =https://www.yisu.com/ask/= value)"hljs">public void Reverse()
    {
        Node current = _head;
        Node temp = null;

        while (current != null)
        {
            temp = current.Previous;
            current.Previous = current.Next;
            current.Next = temp;
            current = current.Previous;
        }

        if (temp != null)
        {
            _head = temp.Previous;
        }
    }

    // 打印链表
    public void Print()
    {
        Node current = _head;

        while (current != null)
        {
            Console.Write(current.Value + " ");
            current = current.Next;
        }

        Console.WriteLine();
    }
}

class Program
{
    static void Main(string[] args)
    {
        DoublyLinkedList list = new DoublyLinkedList();

        list.Add(1);
        list.Add(2);
        list.Add(3);
        list.Add(4);
        list.Add(5);

        Console.WriteLine("Original list:");
        list.Print();

        list.Remove(3);
        Console.WriteLine("List after removing 3:");
        list.Print();

        list.Reverse();
        Console.WriteLine("Reversed list:");
        list.Print();
    }
}

这个示例中,我们创建了一个DoublyLinkedList类,用于实现双向链表。这个类包含了AddRemoveReversePrint方法,分别用于在链表末尾添加节点、删除指定值的节点、反转链表和打印链表。在Main方法中,我们创建了一个DoublyLinkedList对象,并对其进行了一系列操作,以展示这些高级功能。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/106866.html

相关推荐

  • C# CopyFromScreen的注意事项

    C# CopyFromScreen的注意事项

    CopyFromScreen 是 C# 中 Graphics 类的一个方法,用于从屏幕上复制一个矩形区域到一个位图(Bitmap)对象 性能考虑:CopyFromScreen 方法可能会消耗大量的系统资...

  • C#中如何高效地进行屏幕拷贝

    C#中如何高效地进行屏幕拷贝

    在C#中,要高效地进行屏幕拷贝,可以使用Graphics类的CopyFromScreen方法
    using System;
    using System.Drawing;
    using System.Windows.Forms; na...

  • C#实现屏幕拷贝的代码示例

    C#实现屏幕拷贝的代码示例

    在C#中,可以使用Graphics类和Bitmap类来实现屏幕截图
    using System;
    using System.Drawing;
    using System.Windows.Forms; namespace ScreenCapt...

  • 利用C# CopyFromScreen截图的方法

    利用C# CopyFromScreen截图的方法

    在C#中,可以使用Graphics.CopyFromScreen方法来截取屏幕上的一部分区域
    using System;
    using System.Drawing;
    using System.Windows.Forms; nam...

  • C#中双向链表的扩展性设计

    C#中双向链表的扩展性设计

    在C#中,双向链表是一种数据结构,它包含两个指针,一个指向前一个节点,另一个指向后一个节点。为了实现一个具有扩展性的双向链表,我们可以使用泛型和接口。这...

  • C#双向链表的异常处理策略

    C#双向链表的异常处理策略

    在C#中,实现双向链表时,可能会遇到一些异常情况。为了确保程序的稳定性和健壮性,需要对这些异常情况进行处理。以下是一些建议的异常处理策略: 空引用异常(N...

  • 如何测试C#双向链表的性能

    如何测试C#双向链表的性能

    要测试C#双向链表的性能,您可以创建一个简单的控制台应用程序并使用System.Diagnostics.Stopwatch类来测量不同操作所需的时间 首先,在Visual Studio中创建一个...

  • C#中双向链表的应用场景分析

    C#中双向链表的应用场景分析

    在C#中,双向链表(Doubly Linked List)是一种数据结构,它包含一个前驱节点和一个后继节点的引用 队列和栈的实现:双向链表可以用来实现队列和栈这两种数据结构...