#include<stdio.h>
#include<conio.h>
#include<malloc.h>
struct node
{
int data;
struct node *right, *left;
};
struct node *nw, *root, *temp;
int key,flag=0;
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);
}
}
int search(struct node *temp,int key)
{
if(temp != NULL)
{
if(key == temp-> data)
printf("Searching Sucessfull");
else if(key < temp->data)
search(temp->left,key);
else if(key > temp -> data)
search(temp->right,key);
}
else
printf("Not Found");
return (key);
}
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. Searching\n3. Inorder\n4. Preorder
\n5. Postorder\n6. 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:
clrscr();
printf("Enter The Number You want to Search: ");
scanf("%d",&key);
search(root,key);
getch();
break;
case 3:
inorder(root);
getch();
break;
case 4:
preorder(root);
getch();
break;
case 5:
postorder(root);
getch();
break;
}
}while(ch != 6);
getch();
}
OUTPUT
1. Creation
2. Searching
3. Inorder
4. Preorder
5. Postorder
6. Exit
Enter Your Choice : 1
Enter Element : 50
1. Creation
2. Searching
3. Inorder
4. Preorder
5. Postorder
6. Exit
Enter Your Choice : 1
Enter Element : 30
1. Creation
2. Searching
3. Inorder
4. Preorder
5. Postorder
6. Exit
Enter Your Choice : 1
Enter Element : 70
1. Creation
2. Searching
3. Inorder
4. Preorder
5. Postorder
6. Exit
Enter Your Choice : 1
Enter Element : 10
1. Creation
2. Searching
3. Inorder
4. Preorder
5. Postorder
6. Exit
Enter Your Choice : 1
Enter Element : 40
1. Creation
2. Searching
3. Inorder
4. Preorder
5. Postorder
6. Exit
Enter Your Choice : 1
Enter Element : 60
1. Creation
2. Searching
3. Inorder
4. Preorder
5. Postorder
6. Exit
Enter Your Choice : 1
Enter Element : 80
1. Creation
2. Searching
3. Inorder
4. Preorder
5. Postorder
6. Exit
Enter Your Choice : 2
Enter The Number You want to Search: 60
Searching Sucessfull
1. Creation
2. Searching
3. Inorder
4. Preorder
5. Postorder
6. Exit
Enter Your Choice : 3
10 30 40 50 60 70 80
1. Creation
2. Searching
3. Inorder
4. Preorder
5. Postorder
6. Exit
Enter Your Choice : 4
50 30 10 40 70 60 80
1. Creation
2. Searching
3. Inorder
4. Preorder
5. Postorder
6. Exit
Enter Your Choice : 5
10 40 30 60 80 70 50