※ 이진트리 - 넓이 우선 순회(Breadth first traversal)
- 원칙 : 수준(level)이 낮은 노드를 우선으로 방문
같은 수준의 노드들 사이에서는 부모 노드의 방문 순서에 따라 방문하고
왼쪽 자식 노드를 오른쪽 자식보다 먼저 방문함 => 재귀적 방식과 적합하지 않음
한 노드를 방문했을 때, 나중에 방문할 노드들을 순서대로 기록해 두어야함 => 큐(queue)를 이용해 보자
1. (초기화) traversal <- 빈 리스트, q <- 빈 큐
2. 빈 트리가 아니면, root node 를 q에 추가 (enqueue)
3. q가 비어 있지 않을 때
> node <- q 에서 원소를 추출
> node 방문
> node 왼쪽, 오른쪽 자식들을 q에 추가 (존재할 경우만)
4. q가 빈 큐가 되면 모든 노드를 방문한 것으로 생각한다
'기타 > What I Learned' 카테고리의 다른 글
[자료구조&알고리즘] 이진 탐색 트리(2) (0) | 2021.10.15 |
---|---|
[자료구조&알고리즘] 이진 탐색 트리(1) (0) | 2021.10.14 |
[자료구조&알고리즘] 이진 트리(1) (0) | 2021.10.12 |
[자료구조&알고리즘] 트리 (0) | 2021.10.06 |
[자료구조&알고리즘] 우선순위 큐 (0) | 2021.10.05 |