C# を使用して幅優先検索アルゴリズムを作成する方法
幅優先検索 (BFS) は、一般的に使用されるグラフ検索アルゴリズムであり、幅優先検索アルゴリズムで使用されます。グラフまたはツリー内の賢明な走査。この記事では、C# を使用して幅優先検索アルゴリズムを作成する方法を検討し、具体的なコード例を示します。
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); } }
上記のコードでは、まず を定義します。 Node
クラス。グラフ内のノードを表すために使用されます。ノードには値と近隣ノードのリストが含まれます。 BFSAlgorithm
この関数は幅優先検索アルゴリズムを実装します。このアルゴリズムでは、キューを使用して処理対象のノードを格納し、コレクションを使用して訪問したノードを記録します。アルゴリズムは開始点から開始し、それをキューと訪問先セットに追加し、次にキュー内のノードを繰り返し処理して、その隣接ノードをキューと訪問先セットに追加します。最後に、プログラムの Main
関数で簡単なグラフを作成し、検索するために BFSAlgorithm
関数を呼び出しました。
概要:
この記事では、C# を使用して幅優先検索アルゴリズムを作成する方法を紹介し、詳細なコード例を示します。キューとコレクションを使用して幅優先検索アルゴリズムを実装すると、グラフまたはツリー内を幅方向に走査してターゲット ノードを見つけたり、構造全体を走査したりできます。この記事を通じて、読者が C# で幅優先検索アルゴリズムを作成する基本的なスキルを習得できることを願っています。
以上がC# を使用して幅優先検索アルゴリズムを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。