Showing posts with label binary tree. Show all posts
Showing posts with label binary tree. Show all posts

Monday 26 October 2015

Binary tree

#include <iostream>

using namespace std;

struct  node
{
   node* leftchild;
   node* rightchild;
   int data;
};

int count;

node* insert(node*ptr,int x)

     if(ptr==NULL)
       {
          node* temp= new node;
          temp->leftchild=NULL;
          temp->rightchild=NULL;
          temp->data=x;
          ptr=temp;
          count++;
       }
      else if(count%2==0)
          ptr->leftchild=insert(ptr->leftchild,x);

      else
          ptr->rightchild=insert(ptr->rightchild,x);

return ptr;

}

void preorder(node* root)
{
    if(root!=NULL)
{
    cout<<root->data<<endl;
    preorder(root->leftchild);
    preorder(root->rightchild);

}
}

void inorder(node *root)
{
    if (root!= NULL)
    {
        inorder(root->leftchild);
        cout<<root->data<<endl;
        inorder(root->rightchild);
    }
}

void postorder( node *root)
{
    if (root != NULL)
    {
        postorder(root->leftchild);

        postorder(root->rightchild);
        cout<<root->data<<endl;
    }
}

int main()
{
    count=0;int x;
    node* root=NULL;

    char ch='y';
    while(ch!='n')
    {
        cout<<"Enter the element:";
        cin>>x;
        root=insert(root,x);
        cout<<"Do you want to enter more elements? y/n";
        cin>>ch;
    }

cout<<"Preorder traversal:";
preorder(root);
cout<<"Inorder traversal:";
inorder(root);
cout<<"Postorder traversal";
postorder(root);
}