📌 이진트리의 순회
💡 이진트리순회(Binary Tree Traversal)
- 문제 정의
- 이진 트리의 모든 노드를 한번씩 방문한다.
- 트리에 있는 노드의 순서를 결정한다.
- 순회방법
- 중위순회(L-V-R)
- 전위순회(V-L-R)
- 후위순회(L-R-V)
💡 중위순회
void inorder(struct link *ptr){
if(ptr){
inorder(ptr -> left_child);
printf("%d", ptr -> data);
inorder(ptr -> right_child);
}
}
💡 전위순회
void preorder(struct link *ptr){
if(ptr){
printf("%d", ptr -> data);
preorder(ptr -> left_child);
preorder(ptr -> right_child);
}
}
💡 후위순회
void postorder(struct link *ptr){
if(ptr){
postorder(ptr -> left_child);
postorder(ptr -> right_child);
printf("%d", prt -> data);
}
}
💡 이진트리 순회의 예
💡 이진트리 그리기
- 순회 순서를 이용하여 이진트리를 계산하여 그리기.
- 중위순회 + 전위(후위) 순회 결과를 이용하는 방법
- 중위 순회 : 왼쪽 및 오른쪽 자식을 구분
- 전위(후위) 순회 : 부모 자식을 구분