C#双向链表的查找算法

avatar
作者
猴君
阅读量:0

双向链表是一种链表结构,每个节点包含两个指针,一个指向前一个节点,一个指向后一个节点。双向链表的查找算法可以根据需求进行不同的实现,以下是一个简单的双向链表查找算法示例:

using System;  class Node {     public int data;     public Node prev;     public Node next;      public Node(int data)     {         this.data = data;         this.prev = null;         this.next = null;     } }  class DoublyLinkedList {     private Node head;      public DoublyLinkedList()     {         this.head = null;     }      public void AddNode(int data)     {         Node newNode = new Node(data);         if (head == null)         {             head = newNode;         }         else         {             Node current = head;             while (current.next != null)             {                 current = current.next;             }             current.next = newNode;             newNode.prev = current;         }     }      public Node FindNode(int data)     {         Node current = head;         while (current != null && current.data != data)         {             current = current.next;         }         return current;     }      public void PrintList()     {         Node current = head;         while (current != null)         {             Console.Write(current.data + " ");             current = current.next;         }         Console.WriteLine();     } }  class Program {     static void Main()     {         DoublyLinkedList list = new DoublyLinkedList();         list.AddNode(1);         list.AddNode(2);         list.AddNode(3);         list.AddNode(4);          list.PrintList();          Node node = list.FindNode(3);         if (node != null)         {             Console.WriteLine("Node found: " + node.data);         }         else         {             Console.WriteLine("Node not found");         }     } } 

在上面的示例中,定义了一个Node类表示双向链表的节点,包含数据和指向前一个节点和后一个节点的指针。然后定义了DoublyLinkedList类来管理双向链表,包括添加节点、查找节点和打印链表等方法。最后在Main方法中进行了简单的测试。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!