자료구조

이진트리의 순회

형준_It's 2022. 7. 12. 14:37
728x90
반응형

📌 이진트리의 순회

💡 이진트리순회(Binary Tree Traversal)

  1. 문제 정의
    1. 이진 트리의 모든 노드를 한번씩 방문한다.
    2. 트리에 있는 노드의 순서를 결정한다.
  1. 순회방법
    1. 중위순회(L-V-R)
    2. 전위순회(V-L-R)
    3. 후위순회(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);
    }
}

💡 이진트리 순회의 예

💡 이진트리 그리기

  1. 순회 순서를 이용하여 이진트리를 계산하여 그리기.
    1. 중위순회 + 전위(후위) 순회 결과를 이용하는 방법
      1. 중위 순회 : 왼쪽 및 오른쪽 자식을 구분
      2. 전위(후위) 순회 : 부모 자식을 구분

 

반응형
댓글수0