struct bst_node *s = r->bst_link[0];
while (s->bst_link[0] != NULL)
  {
    r = s;
    s = r->bst_link[0];
  }
p->bst_data = s->bst_data;
r->bst_link[0] = s->bst_link[1];
p = s;
