#include <stdio.h>
#include <stdlib.h>
struct tNode{
int data;
struct tNode *left;
struct tNode *right;
};
struct tNode *initNode (int data);
void tGrow ();
void task (struct tNode *total);
void preorder (struct tNode *node);
void postorder (struct tNode *node);
void inorder (struct tNode *node);
struct tNode *root;
int main()
{
tGrow ();
task (root);
return 0;
}
void preorder (struct tNode *node){
if(node){
if (node->data==2)
printf("hello\t");
else
{ printf("%d\t",node-> data);
}
preorder (node->left);
preorder (node->right);
}
}
void postorder (struct tNode *node){
if(node){
postorder (node->left);
postorder (node->right);
if (node->data==2)
printf("hello\t");
else
{ printf("%d\t",node-> data);
}
}
}
void inorder (struct tNode *node){
if(node){
inorder (node->left);
if (node->data==2)
printf("hello\t");
else
{ printf("%d\t",node-> data);
}
inorder (node-> right);
}
}
void tGrow (void){
root = initNode(0);
root->left = initNode(1);
root->right = initNode(2);
root->left->left = initNode(3);
root->left->right = initNode(4);
root->left->left->left = initNode(5);
root->left->left->right = initNode(6);
root->left->right->left = initNode(7);
root->left->right->right = initNode(8);
root->right->left = initNode(9);
root->right->right = initNode(10);
root->right->left->left = initNode(11);
root->right->left->right = initNode(12);
root->right->right->left = initNode(13);
root->right->right->right = initNode(14);
}
void task (struct tNode *total){
printf(" Inorder traversal:");
inorder(total);
}
struct tNode *initNode (int data){
struct tNode *result;
result= (struct tNode*)malloc(sizeof(struct tNode));
result->data=data;
result->left=NULL;
result->right=NULL;
}
Comments