URDINESH: Implement An Expression Tree. Produce Its
Showing posts with label Implement An Expression Tree. Produce Its. Show all posts
Showing posts with label Implement An Expression Tree. Produce Its. Show all posts

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~~~



























Followers