shishir wrote: > Hi, > I am looking for a method for left to right insertion in a binary tree( > mind it, its not BST am talking about). A simple binary tree where > every root has not more than two childs and the insertion is always > done starting from the leftmost side of any given node. > > 13 > / \ > 27 54 > / \ / \ > 23 42 > > For eg in the above case the next node should be inserted as the left > most child of 54. > Let me know if there's any doubt regarding the question. > > ~Shishir
void add(elem *&root, unsigned &num_elems, elem *new_elem) { num_elems++; if (num_elems == 1) { root = nuw_elem; return; } elem *p = root; unsigned mask = 1; while (mask <= num_elems) mask <<= 1; for (mask >>= 2; mask > 1; mask >>= 1) if (mask & num_elems) p = p->right; else p = p->left; if (num_elems & 1) p->right = new_elem; else p->left = new_elem; return; } --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/algogeeks -~----------~----~----~----~------~----~------~--~---