Implement An Expression Tree. Produce Its Pre-Order, In-Order, And Post-Order Traversals. | URDINESH

Software Programming, Tutorials, Interview Preparations,Stock Market,BSE/NSE, General informations

Thursday, May 8, 2014

Implement An Expression Tree. Produce Its Pre-Order, In-Order, And Post-Order Traversals.

Implement An Expression Tree. Produce Its Pre-Order, In-Order, And Post-Order Traversals.

# include<stdio.h>
# include <conio.h>
# include <malloc.h>
typedef struct bst
{
int data;
struct bst *left,*right;
}node;
void insert(node *, node *);
void inorder(node *);
void postorder(node *);
void preorder(node *);
node *get_node();
/*Main Function*/
void main()
{
int ch,ans=5;
node *New,*root;
root=NULL;
clrscr();
while(1)
{
printf("\nEnter the option:\n1-Create\n2-Preorder\n3-Inorder\n4-Postorder\n5-Exit\n");
scanf("%d",&ch);
switch(ch)
{
case 1:
printf("\nEnter Elements 1 by 1: (0 to stop entering)\n");
do
{
New=get_node();
scanf("%d",&New->data);
ans=New->data;
if(ans!=0)
if(root==NULL)
root=New;
else
insert(root,New);
}while(ans!=0);
break;
case 2:
if(root==NULL)
printf("\nNo element In Tree\n");
else
{
printf("\n~~~PREORDER TRAVERSALS~~~\nThe Tree is:\n");
preorder(root);
}
break;
case 3:
if(root==NULL)
printf("\nNo element In Tree\n");
else
{
printf("\n~~~INORDER TRAVERSALS~~~\nThe Tree is:\n");
inorder(root);
}
break;
case 4:
if(root==NULL)
printf("\nNo element In Tree\n");
else
{
printf("\n~~~POSTORDER TRAVERSALS~~~\nThe Tree is:\n");
postorder(root);
}
break;
default:
printf("\n~~~Exit~~~\n");
getch();
exit(0);
break;
}
}
}
/*Get node*/
node *get_node()
{
node *temp;
temp=(node *)malloc(sizeof(node));
temp->left=NULL;
temp->right=NULL;
return temp;
}
/*Insert Function*/
void insert(node *root,node *New)
{
if(New->data < root->data)
{
if(root->left==NULL)
root->left=New;
else
insert(root->left,New);
}
if(New->data > root->data)
{
if(root->right==NULL)
root->right=New;
else
insert(root->right,New);
}
}
/*preorder Traversals*/
void preorder(node *temp)
{
if(temp!=NULL)
{
printf("-> %d ",temp->data);
preorder(temp->left);
preorder(temp->right);
}
}
/*Inorder Traversals*/
void inorder(node *temp)
{
if(temp!=NULL)
{
inorder(temp->left);
printf("-> %d ",temp->data);
inorder(temp->right);
}
}
/*postorder Traversals*/
void postorder(node *temp)
{
if(temp!=NULL)
{
postorder(temp->left);
postorder(temp->right);
printf("-> %d ",temp->data);
}
}




OUTPUT


Enter the option:
1-Create
2-Preorder
3-Inorder
4-Postorder
5-Exit
1

Enter Elements 1 by 1: (0 to stop entering)
56
45
5
9
1
0

Enter the option:
1-Create
2-Preorder
3-Inorder
4-Postorder
5-Exit
2

~~~PREORDER TRAVERSALS~~~
The Tree is:
-> 56 -> 45 -> 5 -> 1 -> 9
Enter the option:
1-Create
2-Preorder
3-Inorder
4-Postorder
5-Exit
3

~~~INORDER TRAVERSALS~~~
The Tree is:
-> 1 -> 5 -> 9 -> 45 -> 56
Enter the option:
1-Create
2-Preorder
3-Inorder
4-Postorder
5-Exit

4

~~~POSTORDER TRAVERSALS~~~
The Tree is:
-> 1 -> 9 -> 5 -> 45 -> 56
Enter the option:
1-Create
2-Preorder
3-Inorder
4-Postorder
5-Exit
5
~~~Exit~~~



























No comments:

Post a Comment

Thanks for your valuable comments

Followers