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 |