【正确答案】
【答案解析】void Delete(BSTree t,p){ //在二叉排序树t中,删除f所指结点的右孩子(由p所指向)
if(p->lchild==null){ f->rchild=p->rchild; free(p); } //p无左子女
else{ //用p左子树中的最大值代替p结点的值
q=p->lchild; s=q;
while(q->rchild){ s=q; q=q->rchild; } //查P左子树中序序列最右结点
if(s==p->lchild) //p左子树的根结点无右子女
{p->data=s->data; p->lchild=s->lchild; free(s); }
else{p->data=q->data; s->rchild=q->lchild; free(q); }
}
}