SW/알고리즘

Tree Traversal2 - Inorder traversal

MG_ 2019. 2. 23. 16:20

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