Item *search(Tree t, Key k) { if (t == NULL) return NULL; int diff = cmp(k, key(t->data)); if (diff < 0) return search(t->left, k); else if (diff > 0) return search(t->right, k); else // matches return &(t->data); }