#include <iostream>
using namespace std;
struct node
{
int data;
node* left;
node* right;
};
void preorder(struct node *root)
{
if (root != NULL)
{ cout<<root->data<<endl;
preorder(root->left);
preorder(root->right);
}
}
void inorder(struct node *root)
{
if (root != NULL)
{
inorder(root->left);
cout<<root->data<<endl;
inorder(root->right);
}
}
void postorder(struct node *root)
{
if (root != NULL)
{
postorder(root->left);
postorder(root->right);
cout<<root->data<<endl;
}
}
node* insert(node* ptr, int x)
{
if (ptr == NULL)
{
node* temp = new node;
temp->data = x;
temp->left = temp->right = NULL;
ptr=temp;
}
else if (x < ptr->data)
ptr->left = insert(ptr->left,x);
else if (x> ptr->data)
ptr->right = insert(ptr->right,x);
return ptr;
}
int main()
{int x;
struct node *root = NULL;
char ch='y';
while(ch!='n')
{
cout<<"Enter the element:";
cin>>x;
root= insert(root,x);
cout<<"Do you want to insert more elements y/n:";
cin>>ch;
}
cout<<"Preorder traversal:";
preorder(root);
cout<<"Inorder traversal:";
inorder(root);
cout<<"Postorder traversal";
postorder(root);
return 0;
}
No comments:
Post a Comment