#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode{
int value;
struct TreeNode *leftChild;
struct TreeNode *rightChild;
}Tree;
void preorder(Tree *root)
{
if(!root) return;
printf("%d ", root->value);
preorder(root->leftChild);
preorder(root->rightChild);
}
void inorder(Tree *root)
{
if(!root) return;
inorder(root->leftChild);
printf("%d ", root->value);
inorder(root->rightChild);
}
void postorder(Tree *root)
{
if(!root) return;
postorder(root->leftChild);
postorder(root->rightChild);
printf("%d ", root->value);
}
// just create a tree without any skill
void createTree(Tree *root)
{
/* 1
2 3
4 5 6 */
Tree *node[5];
for(int i = 0; i<5; i++){
node[i] = (Tree *)malloc(sizeof(Tree *));
node[i]->value = i+2;
}
root->value = 1;
root->leftChild = node[0];
root->rightChild = node[1];
node[0]->leftChild = node[2];
node[0]->rightChild = node[3];
node[1]->rightChild = node[4];
}
int main()
{
Tree *treeA = (Tree *)malloc(sizeof(Tree *));
createTree(treeA);
printf("preorder : ");
preorder(treeA);
printf("\ninorder : ");
inorder(treeA);
printf("\npostorder: ");
postorder(treeA);
printf("\n");
return 0;
}
留言列表