p = tree->tbst_root;
if (p == NULL)
  return NULL;

for (;;)
  {
    int cmp = tree->tbst_compare (item, p->tbst_data, tree->tbst_param);
    if (cmp == 0)
      break;

    p = p->tbst_link[cmp > 0];
  }

q = find_parent (tree, p);
dir = q->tbst_link[0] != p;

