알고리즘: 너비 우선 검색
기본 사항
Breadth First Search는 그래프 데이터 구조를 순회하는 데 사용되는 알고리즘입니다. 노드를 방문하는 순서입니다. 이름에서 알 수 있듯이 순회는 너비 우선 방식으로 수행됩니다. 즉, 특정 노드에서 시작하여 더 깊은 수준에서 추가 노드를 탐색하기 전에 현재 수준의 모든 노드를 순회합니다.
트리 순서 순회
루트 노드(6)에서 시작하여 각 레벨을 왼쪽에서 오른쪽으로 탐색한 후 다음 레벨로 이동합니다.
구현
BFS 알고리즘은 일반적으로 데이터 구조를 사용하여 반복적으로 구현됩니다. 큐에 루트 노드를 추가하여 시작합니다. 그런 다음 대기열을 반복하면서 노드를 제거하고 해당 자식을 대기열에 추가합니다. 이를 통해 레벨별로 그래프 레벨을 탐색할 수 있습니다.
문제
이진 트리가 주어지면 레벨 순회별로 레벨을 나타내는 하위 배열의 배열을 반환합니다.
class Node {
constructor(val) {
this.val = val
this.left = null
this.right = null
}
}
해결책
const bfs = (root) => {
const result = []
const queue = [ root ]
while (queue.length) {
const level = []
const qLength = queue.length
for (let x = 0; x < qLength; x++) {
const node = queue.shift()
level.push(node.val)
if (node.left !== null) queue.push(node.left)
if (node.right !== null) queue.push(node.right)
}
result.push(level)
}
return result
}
Reference
이 문제에 관하여(알고리즘: 너비 우선 검색), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/seantansey/algorithms-breadth-first-search-2eif텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)