Binary Tree

#include<iostream.h>
#include<stdlib.h>
struct node
{
int data;
node *left;
node *right;
}; 

node *tree=NULL;
node *insert(node *tree,int ele);

void preorder(node *tree);
void inorder(node *tree);
void postorder(node *tree);
int count=1;

int main()
{

int ch,ele;
do
{

cout<<“ntaa1—-INSERT A NODE IN A BINARY TREE.aa”;
cout<<“ntaa2—-PRE-ORDER TRAVERSAL.aa”;
cout<<“ntaa3—-IN-ORDER TRAVERSAL.aa”;
cout<<“ntaa4—-POST-ORDER TRAVERSAL.aa”;
cout<<“ntaa5—-EXIT.aa”;
cout<<“ntaaENTER CHOICE::aa”;
cin>>ch;
switch(ch)
{
case 1:
cout<<“ntaaENTER THE ELEMENT::aa”;
cin>>ele;
tree=insert(tree,ele);
break;

case 2:
cout<<“ntaa****PRE-ORDER TRAVERSAL OF A TREE****aa”;
preorder(tree);
break;

case 3:
cout<<“ntaa****IN-ORDER TRAVERSAL OF A TREE****aa”;
inorder(tree);
break;
case 4:
cout<<“ntaa****POST-ORDER TRAVERSAL OF A TREE****aa”;
postorder(tree);
break;

case 5:
exit(0);
}
}while(ch!=5);
getch();
return 0;
}

node *insert(node *tree,int ele)
{
if(tree==NULL)
{
tree=new node;
tree->left=tree->right=NULL;
tree->data=ele;
count++;
}
else
if(count%2==0)
tree->left=insert(tree->left,ele);
else
tree->right=insert(tree->right,ele);
return(tree);
}

void preorder(node *tree)
{
if(tree!=NULL)
{
cout<<tree->data;
preorder(tree->left);
preorder(tree->right);

}
}

void inorder(node *tree)
{
if(tree!=NULL)
{
inorder(tree->left);
cout<<tree->data;
inorder(tree->right);

}
}

void postorder(node *tree)
{
if(tree!=NULL)
{
postorder(tree->left);
postorder(tree->right);
cout<<tree->data;

}
}

Leave a comment