The program will
-
add a node to the tree
-
Perform Inorder Traversal
-
Perform Preorder Traversal
-
Perform Postorder Traversal
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
typedef struct node
{
int d;
struct node *right, *left;
}Node;
Node *root=NULL;
void add()
{
int x, y;
Node *p, *q;
p = (Node *)malloc(sizeof(Node));
p->left=NULL;
p->right=NULL;
printf("\nEnter a value:");
scanf("%d", &p->d);
if(root==NULL)
{
root = p;
return;
}
q = root;
while(q!=NULL)
{
x = q->d;
y = p->d;
if(y<x)
{ if(q->left==NULL)
{
q->left=p;
return;
}
q = q->left;
}
if(y>x)
{
if(q->right==NULL)
{
q->right = p;
return;
}
q = q->right;
}
}
}
void inorder(Node *q)
{
if(q!=NULL)
{
inorder(q->left);
printf("%d ", q->d);
inorder(q->right);
}
}
void preorder(Node *q)
{
if(q!=NULL)
{
printf("%d ", q->d);
preorder(q->left);
preorder(q->right);
}
}
void postorder(Node *q)
{
if(q!=NULL)
{
postorder(q->left);
postorder(q->right);
printf("%d ", q->d);
}
}
void main()
{
Node *q;
int ch;
clrscr();
do{
printf("\nMENU");
printf("\n1. Insert");
printf("\n2. Inorder Traversal");
printf("\n3. Preorder Traversal");
printf("\n4. Postorder Traversal");
printf("\n5. Exit.");
printf("\nEnter your choice: ");
scanf("%d", &ch);
switch(ch)
{
case 1:
add();
break;
case 3:
preorder(root);
break;
case 2:
inorder(root);
break;
case 4:
postorder(root);
break;
case 5:
printf("\nThank you");
break;
default:
printf("\nWrong choice.");
}
}while(ch!=5);
getch();
}