/*
node : Int = 현재 위치
visited : BooleanArray = 방문 여부
tree : Array<MutableList<Int> = 탐색할 트리
queue : LinkedList<Int>() = 인접 노드
*/
// Queue 구조를 위한 import
import java.util.LinkedList
fun bfs(node: Int) {
// queue와 방문 리스트에 추가
queue.add(node)
visited[node] = true
// 인접 노드 확인
while (queue.isNotEmpty()) {
val head = queue.poll() // 첫 원소 반환 후 remove
// 현재 노드를 기점으로 인접 노드
for (next in tree[head]) {
// 방문 여부 확인
if (!visited[next]) {
visited[next] = true
queue.add(next)
}
}
}
}