이진 트리(Binary Tree)는 각 노드가 최대 두 개의 자식 노드를 가지는 트리 자료구조입니다. 이진 트리는 많은 알고리즘에서 사용되며, 특히 검색 알고리즘에서 자주 사용됩니다.
이진 트리는 각 노드(Node)가 데이터와 두 개의 포인터(left, right)를 가지며, 이 포인터를 통해 자식 노드를 가리킵니다. 트리의 가장 위쪽에 위치한 노드를 루트 노드(Root Node)라고 하며, 가장 아래쪽에 있는 노드를 리프 노드(Leaf Node)라고 합니다.
이진 트리는 여러 가지 방법으로 순회할 수 있습니다. 대표적인 순회 방법으로는 전위 순회(Preorder Traversal), 중위 순회(Inorder Traversal), 후위 순회(Postorder Traversal)가 있습니다.다음은 이진 트리의 한 예시입니다.
1. 전위 순회
전위 순회는 루트 노드를 먼저 방문하고, 왼쪽 자식 노드를 방문한 후에 오른쪽 자식 노드를 방문하는 순서로 순회합니다. 즉, 루트-왼쪽-오른쪽 순서로 방문합니다.
2. 중위 순회
중위 순회는 왼쪽 자식 노드를 방문 한 후에 루트 노드를 방문하고, 오른쪽 자식 노드를 방문하는 순서로 순회합니다. 즉, 왼쪽-루트-오른쪽 순서로 방문합니다.
3. 후위 순회
후위 순회는 왼쪽 자식 노드를 방문한 후에 오른쪽 자식 노드를 방문하고, 마지막으로 루트 노드를 방문하는 순서로 순회합니다. 즉, 왼쪽-오른쪽-루트 순서로 방문합니다.
따라서 순회의 방법에 따른 순서는 아래 그림처럼 나타나게 됩니다.
'Algorithm > 개념정리' 카테고리의 다른 글
Kruskal vs Prim (1) | 2023.12.02 |
---|---|
Comparable, Comparator 인터페이스 (0) | 2023.04.15 |
글을 쓰기에 앞서서 (0) | 2023.04.13 |