class node { public: node(int i){id=i;Lchild=NULL; Rchild=NULL;} node(){id=0; Lchild=NULL; Rchild=NULL;} node(node * n){id=n->getid(); Lchild=n->getL(); Rchild=n->getR();} int getid(){return id;} node *getL(){return Lchild;} node *getR(){return Rchild;} void print(){cout<<"my id = "<print();} if(Rchild!=NULL){Rchild->print();} } void addval(int i); ~node(){delete Lchild; delete Rchild;} private: int id; node * Lchild; node * Rchild; }; //**************************// void node::addval(int i) { if(i==id){cout<<"node already exists"<addval(i);} } else { if(Rchild==NULL){Rchild = new node(i);} else{Rchild->addval(i);} } }