1.  트리 순회 (Tree Traversal)
  ㅇ 모든 정점을 한번씩 만 방문하거나, 목표 정점을 찾아가는 방법
2. 트리 순회의 특징
  ㅇ 그래프 순회의 일종
  ㅇ 각 노드의 하부들을 각각 독립된 서브 트리(subtree,부분 트리)로써 순회
     - 즉, 재귀적(순환적)인 방법으로 서브 트리를 정의하며 순회할 수 있음
3. 트리 순회의 종류
  ㅇ 전위 순회 (Preorder Traversal)
  ㅇ 중위 순회 (Inorder Traversal)
  ㅇ 후위 순회 (Postorder Traversal)
  ㅇ 레벨 순회 (Level Traversal)
4. 전위 순회 (Preorder Traversal)
  ㅇ 순회 방식
     - 루트 노드를 시작으로, 
     - 왼쪽 서브 트리를 먼저 순회하고,
     - 오른쪽 서브 트리를 그다음 순회
     * 부모(루트)가 제일 먼저 방문됨
     * 깊이 우선, 전위 순회 (Depth First, Preorder Traversal) 라고도 함
        ㅇ 알고리즘 구현 例) (C 언어, 재귀적 구현)
  ㅇ 알고리즘 구현 例) (C 언어, 재귀적 구현)
      void preorder(struct BinaryTreeNode *parent) {
    if(parent) {
        printf("%d ", parent->value);
        preorder(parent->leftChild);
        preorder(parent->rightChild);
    }
}
5. 중위 순회 (Inorder Traversal)
  ㅇ 순회 방식
     - 제일 왼쪽 최하위 노드를 시작으로,
     - 왼쪽 서브 트리를 먼저 순회하고
     - 부모(루트)를 거쳐,
     - 오른쪽 서브 트리들을 차례대로 순회
     * 부모(루트)가 서브트리 방문 중간(사이)에 방문됨
        6. 후위 순회 (Postorder Traversal)
  ㅇ 순회 방식
     - 제일 왼쪽 최하위 노드를 시작으로,
     - 왼쪽 서브 트리를 먼저 순회하고,
     - 오른쪽 서브 트리들을 차례대로 순회하고,
     - 부모(루트)를 순회
     * 부모(루트)가 양쪽 서브트리 후에 방문됨
6. 후위 순회 (Postorder Traversal)
  ㅇ 순회 방식
     - 제일 왼쪽 최하위 노드를 시작으로,
     - 왼쪽 서브 트리를 먼저 순회하고,
     - 오른쪽 서브 트리들을 차례대로 순회하고,
     - 부모(루트)를 순회
     * 부모(루트)가 양쪽 서브트리 후에 방문됨
        7. 레벨 순회 방식 (너비 우선 순회 방식)
  ㅇ 순회 방식 
     - 루트 노드를 시작으로,
     - 현재 깊이의 모든 노드를 순회하고,
     - 그 다음 깊이의 모든 노드들을 순회
     * 형제 노드 방문 위주
7. 레벨 순회 방식 (너비 우선 순회 방식)
  ㅇ 순회 방식 
     - 루트 노드를 시작으로,
     - 현재 깊이의 모든 노드를 순회하고,
     - 그 다음 깊이의 모든 노드들을 순회
     * 형제 노드 방문 위주
         ㅇ 특징
     - 큐 자료구조를 사용
  ㅇ 특징
     - 큐 자료구조를 사용