백엔드 개발자 공부/자료구조, 알고리즘

[자료구조] Search Algorithm: 트리 순회, BFS / DFS

gotoguy 2022. 9. 26. 22:54
728x90

트리 순회(Tree Traversal)

    - 특정 목적을 위해 트리의 모든 노드를 한 번씩 방문

    - 트리 순회는 항상 왼쪽에서 오른쪽으로 조회함

 

트리 순회 방법

    - 전위 순회(preorder traverse) : 루트부터 순회를 시작해 왼쪽에서 오른쪽으로 이동해 노드 탐색

        탐색 순서 : 0 → 1 → 3 → 7 → 4 → 8 → 2 → 5 → 9 → 6

    - 중위 순회(inorder traverse) : 왼쪽에서 순회를 시작해 루트를 중간에 거쳐 오른쪽으로 이동해 노드 탐색

        탐색 순서 : 7 → 3 → 1 → 8 → 4 → 0 → 9 → 5 → 2 → 6

    - 후위 순회(postorder traverse) : 왼쪽에서 오른쪽으로 노드 탐색 후 루트를 가장 마지막에 순회

        탐색 순서 : 7 → 3 → 8 → 4 → 1 → 9 → 5 → 6 → 2 → 0


그래프 탐색

    - 하나의 정점에서 시작하여 그래프의 모든 정점들을 한 번씩 방문

 

그래프 탐색 방법

https://velog.io/@vagabondms/DFS-vs-BFS

    - 너비 우선 탐색(BFS, Breadth-First Search) : 가장 가까운 정점부터 탐색. 정점 사이의 최단 경로를 찾을 때 사용

    - 깊이 우선 탐색(DFS, Depth-First Search) : 하나의 경로를 끝까지 탐색한 후 다음 경로 탐색. 모든 노드를 방문하고자 할 때 사용

728x90