#include #include struct STUDENT { int code; char name[30]; }; class NODE { public: NODE(char name[30],int code) { left=NULL; right=NULL; strcpy(data.name,name); data.code=code; } STUDENT data; NODE *left; NODE *right; }; NODE *root; bool addnode(NODE **currentnode,char name[30],int code) { if (*currentnode==NULL) { *currentnode=new NODE(name,code); return true; } else { if (code < (*currentnode)->data.code) { addnode(&((*currentnode)->left),name,code); } else if (code > (*currentnode)->data.code ) { addnode(&((*currentnode)->right),name,code); } } return true; } void removeallnodes( NODE *node) { if (node!=NULL) { removeallnodes(node->left); removeallnodes(node->right); delete node; } } void preorder(NODE *node) { if (node!=NULL) { printf("%d %s\n",node->data.code,node->data.name); preorder(node->left); preorder(node->right); } } void inorder(NODE *node) { if (node!=NULL) { inorder(node->left); printf("%d %s\n",node->data.code,node->data.name); inorder(node->right); } } void postorder(NODE *node) { if (node!=NULL) { postorder(node->left); postorder(node->right); printf("%d %s\n",node->data.code,node->data.name); } } void findnode(NODE *node,int what) { if (node!=NULL) { printf("#"); if (what>node->data.code) findnode(node->right,what); else if (whatdata.code) findnode(node->left,what); else printf("Found %d %s\n", node->data.code,node->data.name); } } void main() { root=NULL; addnode(&root,"Niruth",1118); addnode(&root,"Joe",1117); addnode(&root,"Rubby",8374); addnode(&root,"Paro",2321); addnode(&root,"Rajun",2323); addnode(&root,"Rocase",3321); addnode(&root,"Kap",3341); addnode(&root,"Baron",4021); addnode(&root,"Somsak",3441); addnode(&root,"Jain",3400); addnode(&root,"Satish",4230); addnode(&root,"Anita",1304); addnode(&root,"Sunee",3112); printf("INORDER = \n"); inorder(root); printf("\n"); int what; do { printf("Who u want to find (Enter code) : "); scanf("%d",&what); if (what!=0) { findnode(root,what); } }while(what!=0); removeallnodes(root); }