#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
typedef struct TreeNode {
int data;
struct TreeNode *left, *right;
} TreeNode;
TreeNode n1 = { 1, NULL, NULL };
TreeNode n2 = { 4, &n1, NULL };
TreeNode n3 = { 16, NULL, NULL };
TreeNode n4 = { 25, NULL, NULL };
TreeNode n5 = { 20, &n3, &n4 };
TreeNode n6 = { 15, &n2, &n5 };
TreeNode *root = &n6;
void inorder(TreeNode *root) {
if (root != NULL) {
inorder(root->left);// 왼쪽서브트리 순회
printf("[%d] ", root
->data
); // 노드 방문 inorder(root->right);// 오른쪽서브트리 순회
}
}
void preorder(TreeNode *root) {
if (root != NULL) {
printf("[%d] ", root
->data
); // 노드 방문 preorder(root->left);// 왼쪽서브트리 순회
preorder(root->right);// 오른쪽서브트리 순회
}
}
void postorder(TreeNode *root) {
if (root != NULL) {
postorder(root->left);// 왼쪽서브트리 순회
postorder(root->right);// 오른쪽서브트리순회
printf("[%d] ", root
->data
); // 노드 방문 }
}
int main(void)
{
inorder(root);
preorder(root);
postorder(root);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPG1lbW9yeS5oPgoKdHlwZWRlZiBzdHJ1Y3QgVHJlZU5vZGUgewoJaW50IGRhdGE7CglzdHJ1Y3QgVHJlZU5vZGUgKmxlZnQsICpyaWdodDsKfSBUcmVlTm9kZTsKClRyZWVOb2RlIG4xID0geyAxLCAgTlVMTCwgTlVMTCB9OwpUcmVlTm9kZSBuMiA9IHsgNCwgICZuMSwgIE5VTEwgfTsKVHJlZU5vZGUgbjMgPSB7IDE2LCBOVUxMLCBOVUxMIH07ClRyZWVOb2RlIG40ID0geyAyNSwgTlVMTCwgTlVMTCB9OwpUcmVlTm9kZSBuNSA9IHsgMjAsICZuMywgICZuNCB9OwpUcmVlTm9kZSBuNiA9IHsgMTUsICZuMiwgICZuNSB9OwpUcmVlTm9kZSAqcm9vdCA9ICZuNjsKCnZvaWQgaW5vcmRlcihUcmVlTm9kZSAqcm9vdCkgewoJaWYgKHJvb3QgIT0gTlVMTCkgewoJCWlub3JkZXIocm9vdC0+bGVmdCk7Ly8g7Jm87Kq97ISc67iM7Yq466asIOyInO2ajAoJCXByaW50ZigiWyVkXSAiLCByb290LT5kYXRhKTsgIC8vIOuFuOuTnCDrsKnrrLgKCQlpbm9yZGVyKHJvb3QtPnJpZ2h0KTsvLyDsmKTrpbjsqr3shJzruIztirjrpqwg7Iic7ZqMCgl9Cn0KCnZvaWQgcHJlb3JkZXIoVHJlZU5vZGUgKnJvb3QpIHsKCWlmIChyb290ICE9IE5VTEwpIHsKCQlwcmludGYoIlslZF0gIiwgcm9vdC0+ZGF0YSk7ICAvLyDrhbjrk5wg67Cp66y4CgkJcHJlb3JkZXIocm9vdC0+bGVmdCk7Ly8g7Jm87Kq97ISc67iM7Yq466asIOyInO2ajAoJCXByZW9yZGVyKHJvb3QtPnJpZ2h0KTsvLyDsmKTrpbjsqr3shJzruIztirjrpqwg7Iic7ZqMCgl9Cn0KCnZvaWQgcG9zdG9yZGVyKFRyZWVOb2RlICpyb290KSB7CglpZiAocm9vdCAhPSBOVUxMKSB7CgkJcG9zdG9yZGVyKHJvb3QtPmxlZnQpOy8vIOyZvOyqveyEnOu4jO2KuOumrCDsiJztmowKCQlwb3N0b3JkZXIocm9vdC0+cmlnaHQpOy8vIOyYpOuluOyqveyEnOu4jO2KuOumrOyInO2ajAoJCXByaW50ZigiWyVkXSAiLCByb290LT5kYXRhKTsgIC8vIOuFuOuTnCDrsKnrrLgKCX0KfQppbnQgbWFpbih2b2lkKQp7CglwcmludGYoIuykkeychCDsiJztmow9Iik7Cglpbm9yZGVyKHJvb3QpOwoJcHJpbnRmKCJcbiIpOwoKCXByaW50Zigi7KCE7JyEIOyInO2ajD0iKTsKCXByZW9yZGVyKHJvb3QpOwoJcHJpbnRmKCJcbiIpOwoKCXByaW50Zigi7ZuE7JyEIOyInO2ajD0iKTsKCXBvc3RvcmRlcihyb290KTsKCXByaW50ZigiXG4iKTsKCXJldHVybiAwOwp9Cg==