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;
}
#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 |