1. 왼쪽 서브 트리를 중위 순회한다.
2. 노드를 방문한다.
3. 오른쪽 서브 트리를 중위 순회한다.





#include <stdio.h>
#include <malloc.h>

#define MAX 7

int tree[MAX];

void initTree() {
    for (int i = 0; i < MAX; ++i) {
        tree[i] = i + 'A';
    }
}

void visit(int idx) {
    printf("node %c \n", tree[idx]);
}

void inorder_traversal(int idx) {
    if (idx < MAX) {
        int left = idx * 2 + 1;
        int right = idx * 2 + 2;

        inorder_traversal(left);
        visit(idx);
        inorder_traversal(right);
    }
}
   

int main()
{
    initTree();
    inorder_traversal(0);

    return 0;
}



* Output

D → B → E → A → F → C → G


'SW > 알고리즘' 카테고리의 다른 글

Tree Traversal4 - Level order Traversal (Breadth-First Traversal)  (0) 2019.02.23
Tree Traversal3 - Postorder traversal  (0) 2019.02.23
Tree Traversal1 - Preorder Traversal  (0) 2019.02.23
Right Hand Rule  (0) 2018.12.30
Eratosthenes's Sieve  (0) 2018.12.30

+ Recent posts