Cara menulis algoritma carian luas-pertama menggunakan C#
Breadth-First Search (BFS) ialah algoritma carian graf yang biasa digunakan yang digunakan untuk melintasi graf atau pokok mengikut keluasan. Dalam artikel ini, kami akan meneroka cara menulis algoritma carian luas pertama menggunakan C# dan memberikan contoh kod konkrit.
using System; using System.Collections.Generic; public class BFS { public class Node { public int value; public List<Node> neighbors; public Node(int v) { value = v; neighbors = new List<Node>(); } } public static void BFSAlgorithm(Node start) { Queue<Node> queue = new Queue<Node>(); HashSet<Node> visited = new HashSet<Node>(); queue.Enqueue(start); visited.Add(start); while (queue.Count > 0) { Node node = queue.Dequeue(); Console.Write(node.value + " "); foreach (Node neighbor in node.neighbors) { if (!visited.Contains(neighbor)) { queue.Enqueue(neighbor); visited.Add(neighbor); } } } } public static void Main(string[] args) { Node node1 = new Node(1); Node node2 = new Node(2); Node node3 = new Node(3); node1.neighbors.Add(node2); node1.neighbors.Add(node3); Node node4 = new Node(4); Node node5 = new Node(5); Node node6 = new Node(6); node2.neighbors.Add(node4); node2.neighbors.Add(node5); node3.neighbors.Add(node6); BFSAlgorithm(node1); } }
Dalam kod di atas, kami mula-mula mentakrifkan fungsi Node
类,用于表示图中的节点。节点包含一个值和一个邻居列表。BFSAlgorithm
函数实现了广度优先搜索算法,其中使用一个队列来存储待处理的节点,并使用一个集合来记录已访问过的节点。算法从起点开始,将其加入队列和已访问集合,然后迭代处理队列中的节点,并将其邻居节点加入队列和已访问集合。最后,我们在程序的Main
函数中创建了一个简单的图,并调用BFSAlgorithm
untuk mencari.
Ringkasan:
Artikel ini memperkenalkan cara menggunakan C# untuk menulis algoritma carian luas pertama dan memberikan contoh kod terperinci. Dengan menggunakan baris gilir dan koleksi untuk melaksanakan algoritma carian pertama keluasan, kita boleh merentasi keluasan mengikut graf atau pokok untuk mencari nod sasaran atau merentasi keseluruhan struktur. Saya berharap agar pembaca dapat menguasai kemahiran asas menulis algoritma carian luas pertama dalam C# melalui artikel ini.
Atas ialah kandungan terperinci Bagaimana untuk menulis algoritma carian luas pertama menggunakan C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!