#include<stdio.h>
#include<conio.h>
#include<malloc.h>
struct node
{
int data;
struct node *right, *left;
};
struct node *nw, *root, *temp;
void creation(struct node *root, struct node *nw)
{
if(nw -> data < root-> data)
{
if(root -> left == NULL)
root -> left = nw;
else
creation(root->left, nw);
}
if(nw -> data > root -> data)
{
if(root -> right == NULL)
root -> right = nw;
else
creation(root -> right , nw);
}
}
void inorder(struct node *temp)
{
if(temp != NULL)
{
inorder(temp -> left);
printf(" %d ",temp->data);
inorder(temp -> right);
}
}
void preorder(struct node *temp)
{
if(temp != NULL)
{
printf(" %d ",temp->data);
preorder(temp -> left);
preorder(temp -> right);
}
}
void postorder(struct node *temp)
{
if(temp != NULL)
{
postorder(temp -> left);
postorder(temp -> right);
printf(" %d ",temp->data);
}
}
void main()
{
int ch,item;
root = NULL;
do
{
clrscr();
printf("1. Creation \n2. Inorder Traversal\n3. Preorder Traversal\n4. Postorder Traversal\n5. Exit\n\nEnter Your Choice : ");
scanf("%d",&ch);
switch(ch)
{
case 1:
{
printf("Enter Item : ");
scanf("%d",&item);
nw= (struct node *)malloc(sizeof(struct node));
nw -> data = item;
nw -> left = NULL;
nw -> right = NULL;
if(root == NULL)
root = nw;
else
creation(root,nw);
}
break;
case 2:
inorder(root);
getch();
break;
case 3:
preorder(root);
getch();
break;
case 4:
postorder(root);
getch();
break;
}
}while(ch != 5);
}
OUTPUT
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 1
Enter Item : 50
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 1
Enter Item : 30
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 1
Enter Item : 70
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 1
Enter Item : 10
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 1
Enter Item : 40
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 1
Enter Item : 60
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 1
Enter Item : 80
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 2
10 30 40 50 60 70 80
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 3
50 30 10 40 70 60 80
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 4
10 40 30 60 80 70 50