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 preorder_traversal(int idx) {
    if (idx < MAX) {
        int left = idx * 2 + 1;
        int right = idx * 2 + 2;

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

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

    return 0;
}


* Output


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



* 출처 : https://www.tutorialspoint.com/data_structures_algorithms/

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

Tree Traversal3 - Postorder traversal  (0) 2019.02.23
Tree Traversal2 - Inorder traversal  (0) 2019.02.23
Right Hand Rule  (0) 2018.12.30
Eratosthenes's Sieve  (0) 2018.12.30
Prime Number  (0) 2018.12.24

+ Recent posts