Binary Search Tree #include #include #include struct tree { int data; tree *left; tree *right; }*sptr,*q; void rightcheck(); void leftcheck(); void search(); int insdata; tree *node; void main() { clrscr(); node=new tree; cout<<" PLEASE PUT THE root->>"; cin>>node->data; sptr=node; q=sptr; node->left=NULL; node->right=NULL; cout<<" GIVE THE child->>"; cin>>insdata; search(); while(insdata!=0) { if(insdata>sptr->data) rightcheck(); else leftcheck(); cout<<" GIVE THE child->>"; cin>>insdata; search(); sptr=node; } getch(); } void rightcheck() { if(sptr->right==NULL) { cout<<" "<data<right=new tree; sptr=sptr->right; sptr->data=insdata; sptr->left=NULL; sptr->right=NULL; q=node; } else { if(insdata>sptr->data) { sptr=sptr->right; q=sptr; if(insdata>sptr->data) rightcheck(); else leftcheck(); } else { sptr=sptr->left; q=sptr; leftcheck(); } } } void leftcheck() { if(sptr->left==NULL) { cout<<" "<data<left=new tree; sptr=sptr->left; sptr->data=insdata; sptr->right=NULL; sptr->left=NULL; q=node; } else{ if(insdatadata) { sptr=sptr->left; q=sptr; if(insdata>sptr->data) rightcheck(); else leftcheck(); } else { sptr=sptr->right; q=sptr; rightcheck();} } } void search() { sptr=node; while(sptr!=NULL) { if(insdata==sptr->data) { cout<<"This is not insertable."; cout<<"\nInsert child "; cin>>insdata; search(); break; } else { if(insdata>sptr->data) sptr=sptr->right; else sptr=sptr->left; } } sptr=node; }