Heim > Artikel > Backend-Entwicklung > So schreiben Sie einen Breitensuchalgorithmus mit C#
So schreiben Sie einen Breitensuchalgorithmus mit C#
Breadth-First Search (BFS) ist ein häufig verwendeter Graphsuchalgorithmus, der zum Durchlaufen eines Graphen oder Baums entsprechend der Breite verwendet wird. In diesem Artikel untersuchen wir, wie man mit C# einen Breitensuchalgorithmus schreibt, und stellen konkrete Codebeispiele bereit.
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); } }
Im obigen Code definieren wir zunächst eine Node
类,用于表示图中的节点。节点包含一个值和一个邻居列表。BFSAlgorithm
函数实现了广度优先搜索算法,其中使用一个队列来存储待处理的节点,并使用一个集合来记录已访问过的节点。算法从起点开始,将其加入队列和已访问集合,然后迭代处理队列中的节点,并将其邻居节点加入队列和已访问集合。最后,我们在程序的Main
函数中创建了一个简单的图,并调用BFSAlgorithm
-Funktion für die Suche.
Zusammenfassung:
Dieser Artikel stellt vor, wie man mit C# einen Breitensuchalgorithmus schreibt, und gibt detaillierte Codebeispiele. Durch die Verwendung von Warteschlangen und Sammlungen zur Implementierung des Breitensuchalgorithmus können wir ein Diagramm oder einen Baum in der Breite durchqueren, um den Zielknoten zu finden, oder die gesamte Struktur durchqueren. Ich hoffe, dass der Leser durch diesen Artikel die grundlegenden Fähigkeiten zum Schreiben von Breitensuchalgorithmen in C# erlernen kann.
Das obige ist der detaillierte Inhalt vonSo schreiben Sie einen Breitensuchalgorithmus mit C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!