问答题
二叉树的结点类型定义如下:
typedef struct BSTNode{
int data;
struct BSTNode * lch,* rch;//结点的左、右孩子指针
} * BSTree;
代码13-7中,函数BSTree Find_Del(BSTreeroot)的功能是:若root指向一棵二茶树的根结点,则找出该结点的右子树上的“最左下”结点*p,并从树中删除以*p为根
的子树,函数返回被删除子树的根结点指针;若该树根的右子树上不存在“最左下”结点,则返回空指针。
【代码13-7】
BSTree Find_Del(BSTree root)
{
BSTree p,pre;
If(! root) / * root指向的二叉树为空树*/
return NULL;
(1) ; / * 令p指向根结点的右子树*/
if( ! p)
return NULL;
(2) ; / * 设置pre的初值*/
while(p->lch) {/ * 查找“最左下”结点*/
pre=p;
p= (3) ;
}
if( (4) ==root) / * root的右子树根为“最左下”结点*/
pre->rch=NULL;
else
(5) =NULL;/ * 删除以“最左下”结点为根的子树*/
return p;
}