Hi Piyush, Thanx.
On Sat, Dec 10, 2011 at 11:09 PM, Piyush Grover <piyush4u.iit...@gmail.com>wrote: > Hi Aman > > Here is the working algo. I forgot to consider the case you mentioned. So > whenever a new node is getting added in the tree > we need to modify the inordersucc of the predecessor of the current node. > Here is the link: > > you can try out different cases also: > http://www.ideone.com/MOxdl > > -Piyush > > On Sat, Dec 10, 2011 at 8:28 PM, AMAN AGARWAL <mnnit.a...@gmail.com>wrote: > >> Hi. >> >> So can you please tell me the modifications required so it works >> correctly. >> >> Regards, >> Aman. >> >> >> On Sat, Dec 10, 2011 at 8:22 PM, Piyush Grover <piyush4u.iit...@gmail.com >> > wrote: >> >>> yup, you are right.. >>> >>> >>> On Sat, Dec 10, 2011 at 8:09 PM, AMAN AGARWAL <mnnit.a...@gmail.com>wrote: >>> >>>> Hi, >>>> >>>> After 22 you add 21 so >>>> 21->left=22->right=null 22->left=21 21->inorder=22. but here if you >>>> draw the diagram you will see that inorder successor of 18 will >>>> now be 21 not 22. I think you have not taken that into consideration. >>>> Please correct me if I am wrong. >>>> >>>> Regards, >>>> Aman, >>>> >>>> >>>> On Sat, Dec 10, 2011 at 7:37 PM, Piyush Grover < >>>> piyush4u.iit...@gmail.com> wrote: >>>> >>>>> I don't think so. >>>>> First you added 15. >>>>> 15->left = null=15->right=15->succ; >>>>> >>>>> add 13. (13 < 15) so >>>>> 13->left = 13->right = null; 13->succ = 15; 15->left = 13; >>>>> >>>>> add 18 (18 > 15) so >>>>> 18->left = 18->right = null; 18->succ = 15->succ = null; 15->right = >>>>> 15->succ = 18 >>>>> >>>>> add 22 (22 > 15) go to 15->right >>>>> (22 > 18) go to 18-> right >>>>> 22->left = 22->right = null; 22->succ = 18->succ = null; 18->right = >>>>> 18->succ = 22; >>>>> and so on... >>>>> >>>>> >>>>> >>>>> On Sat, Dec 10, 2011 at 6:49 PM, AMAN AGARWAL <mnnit.a...@gmail.com>wrote: >>>>> >>>>>> Hi Piyush, >>>>>> >>>>>> I tried with the following data 15,13,18,22,21. I think your code is >>>>>> not giving proper inorder succ of node 18. >>>>>> Please check it. >>>>>> >>>>>> Regards, >>>>>> Aman. >>>>>> >>>>>> >>>>>> On Sat, Dec 10, 2011 at 6:30 PM, Piyush Grover < >>>>>> piyush4u.iit...@gmail.com> wrote: >>>>>> >>>>>>> insertNode(node *head, int value){ >>>>>>> node *new; >>>>>>> if(head == null){ >>>>>>> new = (node*)malloc(sizeof(node)); >>>>>>> new->data = value; >>>>>>> new->left = new->right = new->inoredrsucc = null; >>>>>>> head = new; >>>>>>> >>>>>>> }else{ >>>>>>> node *root = head; >>>>>>> node *l, *r; >>>>>>> while(root != null){ >>>>>>> >>>>>>> if(root->data > value){ >>>>>>> >>>>>>> l = root; r = null; >>>>>>> root = root->left; >>>>>>> }else{ >>>>>>> >>>>>>> r = root; l = null; >>>>>>> root = root->right; >>>>>>> } >>>>>>> } //endwhile >>>>>>> >>>>>>> if(l != null){ >>>>>>> new = (node*)malloc(sizeof(node)); >>>>>>> new->data = value; >>>>>>> new->left = new->right = null; >>>>>>> new->inordersucc = l; >>>>>>> l->left = new; >>>>>>> }else if(r != null){ >>>>>>> new = (node*)malloc(sizeof(node)); >>>>>>> new->data = value; >>>>>>> new->left = new->right = null; >>>>>>> new->inordersucc = r->inordersucc; >>>>>>> r->inordersucc = new; >>>>>>> r->right = new; >>>>>>> >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> >>>>>>> On Sat, Dec 10, 2011 at 4:04 PM, sayan nayak >>>>>>> <sayanna...@gmail.com>wrote: >>>>>>> >>>>>>>> @dheeraj: I have one doubt... >>>>>>>> during implementation I assumed that inordersuccessor already >>>>>>>> exists for each node. >>>>>>>> So there's no need to track inodersuccessor. >>>>>>>> Just finding the position is ok.Then u can do the needful to change >>>>>>>> the inordersuccessor for the parent and the added node. >>>>>>>> Pls correct me If I'm wrong >>>>>>>> >>>>>>>> >>>>>>>> On Sat, Dec 10, 2011 at 3:43 PM, Dheeraj Sharma < >>>>>>>> dheerajsharma1...@gmail.com> wrote: >>>>>>>> >>>>>>>>> My algorithm is like: >>>>>>>>> >>>>>>>>> 1.Take two pointers. one pointer track..where the node should be >>>>>>>>> inserted..and other..to keep track of inorder successor. >>>>>>>>> first pointer=root; >>>>>>>>> second pointer=null; >>>>>>>>> >>>>>>>>> 2.if the first pointer moves to the left of a particular >>>>>>>>> node(which becomes its parent)..then the set the value of second >>>>>>>>> pointer=parent. >>>>>>>>> else >>>>>>>>> if the first pointer moves to the right of particular node (which >>>>>>>>> becomes its parent)..the let the value of second pointer as it is.. >>>>>>>>> >>>>>>>>> finally when the node has been inserted at leaf..set the inorder >>>>>>>>> successor of the node=second pointer value >>>>>>>>> >>>>>>>>> Correct me if am wrong >>>>>>>>> >>>>>>>>> >>>>>>>>> On Sat, Dec 10, 2011 at 3:38 PM, sayan nayak <sayanna...@gmail.com >>>>>>>>> > wrote: >>>>>>>>> >>>>>>>>>> hi, >>>>>>>>>> here is the code: >>>>>>>>>> ====================================================== >>>>>>>>>> >>>>>>>>>> struct node >>>>>>>>>> { >>>>>>>>>> int data; >>>>>>>>>> struct node *left; >>>>>>>>>> struct node *right; >>>>>>>>>> struct node *inordersuccessor; >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> struct node *createnode(int info){ >>>>>>>>>> struct node* temp; >>>>>>>>>> temp->data=info; >>>>>>>>>> temp->left=temp->right=temp->inordersuccessor=NULL; >>>>>>>>>> return temp; >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> struct node *addNode(struct node *node,int info){ >>>>>>>>>> struct node* temp=Createnode(info); >>>>>>>>>> >>>>>>>>>> if(node==NULL){ >>>>>>>>>> node=(struct node*)malloc(sizeof(struct node); >>>>>>>>>> if (node==NULL) >>>>>>>>>> fatalerror("Out of space"); >>>>>>>>>> else >>>>>>>>>> { node->data=info; >>>>>>>>>> node->left=node->right=node->inordersuccessor=NULL; >>>>>>>>>> } >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> if (node->left==NULL && info<(node->data)){ >>>>>>>>>> node->left=temp; >>>>>>>>>> temp->inordersuccessor=node; >>>>>>>>>> } >>>>>>>>>> else if (node->right==NULL && info>(node->data)){ >>>>>>>>>> >>>>>>>>>> node->right=temp; >>>>>>>>>> temp->inordersuccessor=node->inordersuccessor; >>>>>>>>>> node->inordersuccessor=temp; >>>>>>>>>> } >>>>>>>>>> else >>>>>>>>>> { >>>>>>>>>> if (info<(node->data)) >>>>>>>>>> node->left=addnode(node->left,info); >>>>>>>>>> else >>>>>>>>>> node->right=addnode(node->right,info); >>>>>>>>>> >>>>>>>>>> } >>>>>>>>>> return node; >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> I have run a few test cases..It's working.Pls let me know in case >>>>>>>>>> of any failure test cases. >>>>>>>>>> I'm also checking. >>>>>>>>>> >>>>>>>>>> Regards, >>>>>>>>>> Sayan >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Sat, Dec 10, 2011 at 1:33 PM, AMAN AGARWAL < >>>>>>>>>> mnnit.a...@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> Construct a BST where each node has 3 pointers instead of 2. >>>>>>>>>>> the structure is >>>>>>>>>>> struct node >>>>>>>>>>> { >>>>>>>>>>> int data; >>>>>>>>>>> struct node *left; >>>>>>>>>>> struct node *right; >>>>>>>>>>> struct node *inordersuccessor; >>>>>>>>>>> } >>>>>>>>>>> >>>>>>>>>>> write a code to add nodes in a binary search tree . >>>>>>>>>>> inordersuccessor pointing to inorder successor. >>>>>>>>>>> >>>>>>>>>>> Regards, >>>>>>>>>>> Aman. >>>>>>>>>>> -- >>>>>>>>>>> AMAN AGARWAL >>>>>>>>>>> "Success is not final, Failure is not fatal: It is the courage >>>>>>>>>>> to continue that counts!" >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>> Google Groups "Algorithm Geeks" group. >>>>>>>>>>> To post to this group, send email to algogeeks@googlegroups.com. >>>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>>>>>> For more options, visit this group at >>>>>>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>> Google Groups "Algorithm Geeks" group. >>>>>>>>>> To post to this group, send email to algogeeks@googlegroups.com. >>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>>>>> For more options, visit this group at >>>>>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Dheeraj Sharma* >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "Algorithm Geeks" group. >>>>>>>>> To post to this group, send email to algogeeks@googlegroups.com. >>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>>>> For more options, visit this group at >>>>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "Algorithm Geeks" group. >>>>>>>> To post to this group, send email to algogeeks@googlegroups.com. >>>>>>>> To unsubscribe from this group, send email to >>>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>>> For more options, visit this group at >>>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Algorithm Geeks" group. >>>>>>> To post to this group, send email to algogeeks@googlegroups.com. >>>>>>> To unsubscribe from this group, send email to >>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> AMAN AGARWAL >>>>>> "Success is not final, Failure is not fatal: It is the courage to >>>>>> continue that counts!" >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Algorithm Geeks" group. >>>>>> To post to this group, send email to algogeeks@googlegroups.com. >>>>>> To unsubscribe from this group, send email to >>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Algorithm Geeks" group. >>>>> To post to this group, send email to algogeeks@googlegroups.com. >>>>> To unsubscribe from this group, send email to >>>>> algogeeks+unsubscr...@googlegroups.com. >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>> >>>> >>>> >>>> >>>> -- >>>> AMAN AGARWAL >>>> "Success is not final, Failure is not fatal: It is the courage to >>>> continue that counts!" >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Algorithm Geeks" group. >>>> To post to this group, send email to algogeeks@googlegroups.com. >>>> To unsubscribe from this group, send email to >>>> algogeeks+unsubscr...@googlegroups.com. >>>> For more options, visit this group at >>>> http://groups.google.com/group/algogeeks?hl=en. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Algorithm Geeks" group. >>> To post to this group, send email to algogeeks@googlegroups.com. >>> To unsubscribe from this group, send email to >>> algogeeks+unsubscr...@googlegroups.com. >>> For more options, visit this group at >>> http://groups.google.com/group/algogeeks?hl=en. >>> >> >> >> >> -- >> AMAN AGARWAL >> "Success is not final, Failure is not fatal: It is the courage to >> continue that counts!" >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Algorithm Geeks" group. >> To post to this group, send email to algogeeks@googlegroups.com. >> To unsubscribe from this group, send email to >> algogeeks+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/algogeeks?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to algogeeks@googlegroups.com. > To unsubscribe from this group, send email to > algogeeks+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > -- AMAN AGARWAL "Success is not final, Failure is not fatal: It is the courage to continue that counts!" -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.