4 Tree Demo
4 Tree Demo
class Node
{
public:
node *data;
Node *next;
};
class stack
{
Node *root;
int count;
public:
stack()
{
root=NULL;
count=0;
}
node* pop()
{
if(root==NULL)
{
cout<<"Stack Underflow"<<endl;
return 0;
}
else
{
Node *temp=new Node();
temp=root;
node *x=temp->data;
root=root->next;
count-=1;
free(temp);
return x;
}
node* top()
{
node *temp;
if (root==NULL)
{
cout<<"Stack underflow"<<endl;
return temp;
}
else
{
node *a=root->data;
return a;
}
bool isEmpty()
{
if (root==NULL)
return true;
return false;
}
int size()
{
return count;
}
};
int main()
{
node *r=NULL,*r1;
char postfix[10],prefix[10];
int x;
int ch,choice;
do
{
cout<<"\n1.Construct tree from postfix expression/ prefix expression"
"\n2.Inorder traversal"
"\n3.Preorder traversal"
"\n4.Postorder traversal"
"\n5.Exit"
"\nEnter your choice=";
cin>>ch;
switch(ch)
{
case 1:cout<<"Enter Choice:"
"\n1.Postfix expression"
"\n2.Prefix expression"
"\nchoice=";
cin>>choice;
if(choice==1)
{
cout<<"\nEnter postfix expression=";
cin>>postfix;
r=create_post(postfix);
}
else
{
cout<<"\nEnter prefix expression=";
cin>>prefix;
r=create_pre(prefix);
}
cout<<"\n\nTree created successfully";
break;
case 2:
inorder(r);
break;
case 3:
preorder(r);
break;
case 4:
postorder(r);
break;
}
}while(ch!=5);
return 0;
}