试题查看

首页 > 软件水平考试 > 试题查看
【分析解答题】

【说明】
函数DElEtEnoDEBitrEE *r, int E)的功能是:在树根结点指针为r的二叉查找(排序)树上删除键值为E的结点,若删除成功,则函数返回0,否则函数返回-1。二叉查找树结点的类型定义为:
typEDEF struCt tnoDE
int DAtA;/*结点的键值*/
struCt tnoDE *lChilD, *rChilD;/*指向左、右子树的指针*/
*BitrEE:
在二叉查找树上删除一个结点时,要考虑3种情况:
①若待删除的结点p是叶子结点,则直接删除该结点;
②若待删除的结点p只有一个子结点,则将这个子结点与待删除结点的父结点直接连接,然后删除结点p;
③若待删除的结点p有两个子结点,则在其左子树上,用中序遍历寻找关键值最大的结点s,用结点s的值代替结点p的值,然后删除结点s,结点s必属于上述①、②情况之一。
【函数】
intDElEtEnoDEBitrEE *r,int E)
BitrEE p=*r,pp,s,C;
whilE ( (1) ) /*从树根结点出发查找键值为E的结点*/
pp=p;
iF(E<p->DAtA) p=p->lChilD;
ElsE p=p->rChilD;
iF(!p) rEturn-1;/*查找失败*/
iF(p->lChilD && p->rChilD) /*处理情况③*/
s= (2) ;pp=p
whilE (3) pp=s;s=s->rChilD;
p->DAtA=s->DAtA;p=s;
/*处理情况①、②*/
iF ( (4) ) C=p->lChilD;
ElsE C=p->rChilD;
iF(p==*r) *r=C;
ElsE iF ( (5) ) pp->lChilD=C;
ElsE pp->rChilD=C;
FrEE (p);
rEturn 0;

查看答案解析

参考答案:

正在加载...

答案解析

正在加载...

根据网考网移动考试中心的统计,该试题:

0%的考友选择了A选项

0%的考友选择了B选项

0%的考友选择了C选项

0%的考友选择了D选项

你可能感兴趣的试题

BecauseWebserversareplatformandapplicati编制一个好的程序,首先要确保它的正确性和可靠性,除此以外,通常更注重源程序的(6关系模式SCS(Sno,Cno,Score)中,Sno是学生学号,Cno是课程号编制一个好的程序,首先要确保它的正确性和可靠性,除此以外,通常更注重源程序的(6【说明】供应商—零件—工程项目数据库由以下4个关系模式构成:S(SNO,SNAM【说明】“进货库存信息管理系统”是ERP系统中一个重要的子系统,下面是该系统的一