C
링크드리스트로 이진트리를 구현하기 [C]
OHDONGHYEON
2022. 5. 23. 20:30
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
typedef struct treeNode{
char data;
struct treeNode *left;
struct treeNode *right;
} treeNode;
treeNode* makeRootNode(char data, treeNode* leftNode, treeNode* rightNode)
{
treeNode *root =(treeNode *)malloc(sizeof(treeNode));
root ->data = data;
root->left = leftNode;
root->right = rightNode;
return root;
}
preorder(treeNode* root)
{
if(root) {
printf("%c", root->data);
preorder(root->left);
preorder(root->right);
}
}
inorder(treeNode* root)
{
if(root) {
inorder(root->left);
printf("%c", root->data);
inorder(root->right);
}
}
postorder(treeNode* root)
{
if(root) {
postorder(root->left);
postorder(root->right);
printf("%c", root->data);
}
}
void main()
{
treeNode* n7 = makeRootNode('D', NULL, NULL);
treeNode* n6 = makeRootNode('C', NULL, NULL);
treeNode* n5 = makeRootNode('B', NULL, NULL);
treeNode* n4 = makeRootNode('A', NULL, NULL);
treeNode* n3 = makeRootNode('/', n6, n7);
treeNode* n2 = makeRootNode('*', n4, n5);
treeNode* n1 = makeRootNode('-', n2, n3);
printf("\n preorder : ");
preorder(n1);
printf("\n inorder : ");
inorder(n1);
printf("\n postorder : ");
postorder(n1);
}
preorder의 실행
inorder의 실행
postorder의 실행 //여기 실수로 post를 in이라고 썼습니다 그래도 구조는 똑같습니다