首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列C函数和函数说明,将应填入(n)处的字句写在对应栏内。 【说明】 函数DeleteNode (Bitree *r, int e)的功能是:在树根结点指针为r的二叉查找(排序)树上删除键值为e的结点,若删除成功,则函数返回0,否则函数返
阅读下列C函数和函数说明,将应填入(n)处的字句写在对应栏内。 【说明】 函数DeleteNode (Bitree *r, int e)的功能是:在树根结点指针为r的二叉查找(排序)树上删除键值为e的结点,若删除成功,则函数返回0,否则函数返
admin
2010-01-15
70
问题
阅读下列C函数和函数说明,将应填入(n)处的字句写在对应栏内。
【说明】
函数DeleteNode (Bitree *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必属于上述①、②情况之一。
【函数】
int DeleteNode (Bitree *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;
}
选项
答案
(1)p &&p->data!=e;或p!=NULL&&p->data!=e或p&&(*p).data!=e (2)p->Lchild或(*p).Lchild (3)p->Rchild或(*p).Rchild (4)p->Lchild或(*p).Lchild (5)pp->Lchid=p或p=(*pp).child
解析
本程序的功能是删除二叉查找树的一个结点。题目中对怎样删除结点有着比较详细的说明。
第1种情况就是删除叶子结点,叶子结点可以直接删除,这一点很好理解,因为叶子结点删除后并不会打乱查找树的顺序。
第2种情况是删除只有一个子结点的结点,只需把其子结点代替父结点即可。若子结点下有子树,子树结构不变。
第3种情况要复杂一点,要用到二叉查找树的一些性质,就是结点右子树的所有结点都大于根结点,左子树所有结点都小于根结点。所以,当删除了有左右子树的结点时,要在左子树找最大的结点,来替换被删结点。
转载请注明原文地址:https://www.kaotiyun.com/show/w0DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
对于基于用户名/口令的用户认证机制来说,___________不属于增强系统安全性所应使用的防范措施。
有关评估系统效率质量特性,以下论述正确的是______。A.响应时间越长,系统执行效率越高B.响应时间和交易执行吞吐量都是用来衡量系统执行快慢的C.响应时间越短,交易执行吞吐量越大D.系统的访问量越大,交易执行吞吐量越大
Windows系统中,在排除DNS域名解析故障时,需要刷新DNS解析器缓存,使用的命令是______。
上海市标准化行政主管部门制定并发布的工业产品的安全、卫生要求的标准,在其行政区域内是(10)。
假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为10μs,由缓冲区送至用户区的时间是5μs,系统对每个磁盘块数据的处理时间为2μs。若用户需要将大小为10个磁盘块的Docl文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间
软件缺陷通常是指存在于软件之中的那些不希望或不可接受的偏差,以下关于软件缺陷的理解不正确的是()。
根据ANSI/IEEE829标准,(62)属于《测试案例说明》中的内容。 ①输入说明 ②测试目的 ③环境要求 ④特殊要求
国标16260中,在描述外部(内部)效率度量时,给出了若干针对计算机系统时间消耗的定义,以下描述项中正确的有(31)。①响应时间是指从按下传送键到得到结果为止所需要的时间。②处理时间是指从接受一个消息到送出它的结果之间计算机的历时时间。③周转时间是指
某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天)。活动EH最多可以晚开始①天而不影响项目的进度。由于某种原因,现在需要同一个工作人员完成BC和BD,则完成该项目的最少时间为②天
随机试题
在PowerPoint2003中,提供显示和隐藏工具栏命令的是“______”菜单。
患者,男性,28岁,咳嗽、咳痰1个月余,近1周低热,体温37.5~38.0℃,门诊抗炎治疗效果不佳。胸片示右上肺一含气空洞,内未见液气平面,周围可见多处小斑片影,最可能的诊断为
产业政策的()是指根据产业结构演进的规律,对产业之间不等增长的动态结构做出准确、及时、适度的超前导向,以预防不均衡产生。
“十一五”时期是社会主义新农村建设打下坚实基础的关键时期,在加强农村基础设施建设、改善社会主义新农村建设的物质条件时,主要做好以下工作中的()。
不属于砂浆主要成分的是()。
会计人员在获得会计从业资格证书并上岗后,持证人员无需再继续接受教育。()
企业合并对价分摊事项涉及的评估业务所对应的评估对象应当有()。
孔颖达。字仲达,冀州衡水人。八岁就学,诵记日千余言,暗记《三礼义宗》。及长,明服氏《春秋传》、郑氏《尚书》、《诗》、《礼记》、王氏《易》,善属文,通步历。尝造同郡刘焯,焯名重海内,初不之礼,及请质所疑,遂大畏服。隋大业初,举明经高第,授河内郡博士
下列句子中,在修辞方法的运用上与其他三句不同的一句是:
Clothesplayacriticalpartintheconclusionswereachbyprovidingcluestowhopeopleare,whotheyarenot,andwhotheywo
最新回复
(
0
)