#include<stdio.h> ]
#include<conio.h>
#include<stdlib.h>
void inorder_traversal();
void preorder_traversal();
void postorder_traversal();
struct node
{
int item;
struct node *left,*right;
};
struct node * createnode(int);
struct node * insert_left(struct node*,int);
struct node * insert_right(struct node*,int);
void main()
{
struct node *root = createnode(10);
insert_left(root,20);
insert_right(root,30);
insert_left(root->left,40);
printf("\n Inorder Traversal");
inorder_traversal(root);
printf("\nPreorder Traversal");
preorder_traversal(root);
printf("\nPostorder Traversal");
postorder_traversal(root);
getch();
}
//node creation
struct node* createnode(int value)
{
struct node *new_node=(struct node*)malloc(sizeof(struct node));
new_node->item=value;
new_node->left=NULL;
new_node->right=NULL;
return new_node;
}
//insert left
struct node *insert_left(struct node *root,int value)
{
root->left=createnode(value);
return root->left;
}
//insert right
struct node *insert_right(struct node *root,int value)
{
root->right=createnode(value);
return root->right;
}
void inorder_traversal(struct node *root)
{
if(root==NULL)
return;
inorder_traversal(root->left);
printf("%d",root->item);
inorder_traversal(root->right);
}
void preorder_traversal(struct node *root)
{
if(root==NULL)
return;
printf("%d",root->item);
preorder_traversal(root->left);
preorder_traversal(root->right);
}
void postorder_traversal(struct node *root)
{
if(root==NULL)
return;
postorder_traversal(root->left);
postorder_traversal(root->right);
printf("%d",root->item);
}