首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 一棵非空二叉树中“最左下”结点定义为:若树根的左子树为空,则树根为“最左下”结点;否则,从树根的左子树根出发,沿结点的左孩子分支向下查找,直到某个结点不存在左孩
阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 一棵非空二叉树中“最左下”结点定义为:若树根的左子树为空,则树根为“最左下”结点;否则,从树根的左子树根出发,沿结点的左孩子分支向下查找,直到某个结点不存在左孩
admin
2010-01-15
77
问题
阅读以下说明和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://kaotiyun.com/show/IcDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
以下用例图中,A1和A2为(47)。A1和A2的关系为(48)。(48)
面向对象分析需要找出软件需求中客观存在的所有实体对象(概念),然后归纳、抽象出实体类。(26)是寻找实体对象的有效方法之一。
POP3协议采用(29)模式进行通信,当客户机需要服务时,客户端软件与POP3服务器建立(30)连接。(29)
在IPv4向IPv6的过渡期间,如果要使得两个IPv6结点可以通过现有的IPv4网络进行通信,则应该使用(27);如果要使得纯IPv6结点可以与纯IPv4结点进行通信,则需要使用(28)。(28)
在数据库逻辑结构设计阶段,需要(20)阶段形成的(21)作为设计依据。(20)
假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为10μs,由缓冲区送至用户区的时间是5μs,系统对每个磁盘块数据的处理时间为2μs。若用户需要将大小为10个磁盘块的Docl文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间
以下关于软件测试原则的叙述中,正确的是______。①所有软件测试都应追溯到用户需求②尽早地和不断地进行软件测试③完全测试是不可能的④测试无法发现软件潜在的缺陷⑤需要充分注意测试中的群集现象
与XY(即X与Y不相同时,XY的结果为真)等价的逻辑表达式为________________。
随机试题
用应收账款余额百分比法估计坏账损失,是根据企业本期赊销金额和估计的坏账率来计提坏账准备的方法。()
麻子仁丸的立法原则为厚朴三物汤的立法原则为
公司在经营活动中可以以自己的财产为他人提供担保。关于担保的表述中,下列哪一选项是正确的?()
下列叙述何项为错误?( )
职业健康安全以及环境管理体系标准具体采用了系统化的戴明模型,即通过______环节构成一个动态循环并螺旋上升的系统化管理模式。
ABC控制法就是把企业种类繁多的存货,依据其重要程度、价值大小或者资金占用等标准分为三大类:其中C类存货品种数量多,价值高,应重点管理。()
新课程改革中的教学观认为,教学不只是传递和执行的过程,而是()的过程。
“从消费结构看,经济增长后,日本国民对名牌、高档产品的需求会增长,但这些产品主要得从欧美进口。”相关专家认为,即便日本经济增长导致外贸总体环境变宽松也未必会给中国企业带来多大好处,“当然,对中国的稀有金属需求会增加。”这段话直接支持这样一种观点,即
在ARM汇编语言程序设计中常有分支和循环程序的设计,下面指令中应用于分支和循环的指令操作码是()。①B②ADD③AND④LDR⑤STR⑥MOV⑦EOR⑧CMP⑨BX⑩TEQ
Fewpeoplewouldeverthinkofbeginninganewjobwhentheyareold,butAnnadiditattheageof76.Shewas【T1】________ina
最新回复
(
0
)