집 >백엔드 개발 >C#.Net 튜토리얼 >C#을 사용하여 너비 우선 검색 알고리즘을 작성하는 방법
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!