Dr. Dobb's Journal June 1998
void iinsert(int t) { Tptr p, q; Tptr next = (Tptr) malloc(sizeof(Tnode)); if (!root) root = next; else { for (q = root; q; ) { p = q; q = (t < p->val) ? q->lo : q->hi; } if (t < p->val) p->lo = next; else p->hi = next; } next->lo = next->hi = 0; next->val = t; }