Tuesday, October 14, 2008

CODE

#include
#include
#define true 1
#define false 0
#include
class tree
{
public:
int data;
tree *left,*right;
};
tree *inserttree(int data,tree *p)
{
if(p==NULL)
{
p=new tree();
p->data=data;
p->left=NULL;
p->right=NULL;
return p;
}
if(datadata)
p->left=inserttree(data,p->left);
else
if(data>p->data)
p->right=inserttree(data,p->right);
return p;
}
void printtree(tree *t,int level)
{
int i;
if(t)
{
printtree(t->right,level+1);
cout< for(i=0;i cout<<" ";
cout<data;
printtree(t->left,level+1);
}
}
tree *del(tree *r,tree *q)
{
tree *dnode;
if(r->right!=NULL)
r->right=del(r->right,q);
else
{
dnode=r;
q->data=r->data;
r=r->left;
delete dnode;
}
return r;
}
tree *deleteelement(tree *p,int data)
{
tree *q;
if(p==NULL)
{
cout< return p;
}
else
{
if(datadata)
p->left=deleteelement(p->left,data);
else
if(data>p->data)
p->right=deleteelement(p->right,data);
else
{
q=p;
if(q->right==NULL)
{
p=q->left;
delete q;
}
else
if(q->left==NULL)
{
p=q->right;
delete q;
}
else
q->left=del(q->left,q);
}
}
return p;
}
tree *searchelement(tree *p,int data)
{
tree *q;
if(p==NULL)
{
cout< return p;
}
else
{
if(datadata)
p->left=searchelement(p->left,data);
else
if(data>p->data)
p->right=searchelement(p->right,data);
else
cout<<"element is found\n";
return p;
}

}

void main()
{
int data,depth,ch;
tree *t=NULL;
clrscr();
cout< while(1)
{
cout<<"\n1.insert 2.delete 3.search 4.exit"< cout<<"\n enter choice:";
cin>>ch;
switch(ch)
{
case 1:
cout< cin>>data;
if(data==0)
break;
t=inserttree(data,t);
cout<<"\n Tree display : \n";
printtree(t,1);
break;
case 2:
cout<<"\n Key to delete ?";
cin>>data;
t=deleteelement(t,data);
cout< printtree(t,1);
break;
case 3:
cout<<"\n Key to search ?";
cin>>data;
t=searchelement(t,data);
cout< printtree(t,1);
break;
case 4: exit(0);
}
}
}

No comments: