首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 一棵非空二叉树中“最左下”结点定义为:若树根的左子树为空,则树根为“最左下”结点;否则,从树根的左子树根出发,沿结点的左孩子分支向下查找,直到某个结点不存在左孩
阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 一棵非空二叉树中“最左下”结点定义为:若树根的左子树为空,则树根为“最左下”结点;否则,从树根的左子树根出发,沿结点的左孩子分支向下查找,直到某个结点不存在左孩
admin
2010-01-15
39
问题
阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
一棵非空二叉树中“最左下”结点定义为:若树根的左子树为空,则树根为“最左下”结点;否则,从树根的左子树根出发,沿结点的左孩子分支向下查找,直到某个结点不存在左孩子时为止,该结点即为此二叉树的“最左下”结点。例如:图13-26所示的以A为根的二叉树的“最左下”结点为D,以C为根的子二叉树中的“最左下”结点为C。
二叉树的结点类型定义如下:
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;
}
选项
答案
(1)p=root->rch (2)pre=root (3)p->lch (4)pre (5)pre->lch
解析
此题是一个关于二叉树操作的问题,首先来分析一下题目中对函数功能的描述。
BSTree Find_Del(BSTree root)功能是找出输入的二叉树的右子树上的“最左下”结点,删除以这个结点为根的子树并返回此结点的指针,如果二叉树的右子树不存在“最左下”结点,则返回空指针。
从(1)空所在的注释可知该空要填写的语句的功能是令指针p指向根结点的右子树,从二叉树的结点类型定义可知右孩子的指针为* rch,则第(1)空应该为:p=root->rch。
接着看下面这段代码:
if(!p)
return NULL;
(2); / * 设置pre的初值*/
while(p->lch){/ * 查找“最左下”结点*/
pre=p;
p=(3);
}
从注释可知这个循环的功能是查找二叉树根结点的右子树的“最左下”结点,从函数的返回指针为p可知,第(3)空的指针p应该总是指向左结点的,循环的目的是层层深入,而 pre指针则是p的前趋结点,在删除“最左下”结点时,pre将起到重要作用,所以第(2)空 pre指针的初值应该为二叉树的根结点:pre=root,第(3)空应该为:p->lch。
从第(4)空后面的注释可知if语句是用来判断循环后所求的“最左下”结点是不是存在,如果存在则删除这个以“最左下”结点为根的树,从而得出空(4)和空(5)应该为:pre和 pre->lch。
综上所述,关注程序的注释是非常重要的,它对解题提供了许多有用的信息。
转载请注明原文地址:https://jikaoti.com/ti/kQi7FFFM
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
下图为某设计模式的类图,类State和Context的关系为(49),类(50)是客户使用的主要接口。(50)
上海市标准化行政主管部门制定并发布的工业产品的安全、卫生要求的标准,在其行政区域内是(10)。
POP3协议采用(29)模式进行通信,当客户机需要服务时,客户端软件与POP3服务器建立(30)连接。(30)
ICMP协议属于因特网中的(27)协议,ICMP协议数据单元封装在(28)中传送。(28)
假设系统中有三类互斥资源R1、R2和R3,可用资源数分别为10、5和3。在T0时刻系统中有P1、P2、P3、P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下表所示,此时系统剩余的可用资源数分别为(22)。如果进程按(23)序列执行,那么系统
在数据库逻辑结构设计阶段,需要(20)阶段形成的(21)作为设计依据。(21)
高级程序设计语言中用于描述程序中的运算步骤、控制结构及数据传输的是(20)。
国标16260中,在描述外部(内部)效率度量时,给出了若干针对计算机系统时间消耗的定义,以下描述项中正确的有(31)。①响应时间是指从按下传送键到得到结果为止所需要的时间。②处理时间是指从接受一个消息到送出它的结果之间计算机的历时时间。③周转时间是指
以下关于软件测试原则的叙述中,正确的是______。①所有软件测试都应追溯到用户需求②尽早地和不断地进行软件测试③完全测试是不可能的④测试无法发现软件潜在的缺陷⑤需要充分注意测试中的群集现象
随机试题
细菌所需营养物质中非必需的是
指导护士评估患者健康状况,预测患者需要的理论是
有关自动喷水灭火系统不适用场所,以下哪条错误?(2004,60)
A技术开发公司(以下简称A公司)为增值税一般纳税人,2019年4月发生下列业务:(1)为我国境内B企业提供产品研发服务并提供培训服务,取得研发服务含税收入200万元,培训含税收入50万元,发生相关研发服务的支出7.2万元,取得增值税专用发票。(2)为我
下列各项中,属于法律行为的有()。
德育可以使个体实现某种需要、愿望,从中体验到满足、快乐、幸福,获得一种精神上的享受。这体现了德育的()功能。
我党提出的科学发展观,是对邓小平理论和“三个代表”重要思想的新发展。科学发展观把坚持以人为本和经济社会全面、协调、可持续发展统一起来,强调按照“五个统筹”的要求推进改革和发展,实现经济社会更快更好的发展。科学发展观是指()。
设数据库表中有一个C型字段NAME,打开表文件后,要把内存变量CC的字符串内容输入到当前记录的NAME字段,应当使用命令:
Whataretheman’shobbies?
Readthetextbelowaboutpersonalbranding.ChoosethebestwordorphrasetofilleachgapfromA,B,CorD.Foreach
最新回复
(
0
)