首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列C函数和函数说明,将应填入(n)处的字句写在对应栏内。 【说明】 函数DeleteNode (Bitree *r, int e)的功能是:在树根结点指针为r的二叉查找(排序)树上删除键值为e的结点,若删除成功,则函数返回0,否则函数返
阅读下列C函数和函数说明,将应填入(n)处的字句写在对应栏内。 【说明】 函数DeleteNode (Bitree *r, int e)的功能是:在树根结点指针为r的二叉查找(排序)树上删除键值为e的结点,若删除成功,则函数返回0,否则函数返
admin
2010-01-15
35
问题
阅读下列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://kaotiyun.com/show/w0DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
某软盘有40个磁道,磁头从一个磁道移至另一个磁道需要5ms。文件在磁盘上非连续存放,逻辑上相邻数据块的平均距离为10个磁道,每块的旋转延迟时间及传输时间分别为100ms和25ms,则读取一个100块的文件需要时间为(24)。
以下用例图中,A1和A2为(47)。A1和A2的关系为(48)。(47)
在面向对象技术中,(43)是一组具有相同结构、相同服务、共同关系和共同语义的(44)集合,其定义包括名称、属性和操作。(44)
采用插入排序算法对n个整数排序,其基本思想是:在插入第i个整数时,前i-1个整数已经排好序,将第i个整数依次和第i-1,i-2,…个整数进行比较,找到应该插入的位置。现采用插入排序算法对6个整数{5,2,4,6,1,3}进行从小到大排序,则需要进行(31)
()不是RISC的特点。
若某文件系统的目录结构如下图所示,假设用户要访问文件f1.java,且当前工作目录为Program,则该文件的全文件名为(24),其相对路径为(25)。 (24)
程序中常采用变量表示数据,变量具有名、地址、值、作用域、生存期等属性。关于变量的叙述,(19)是错误的。
高级程序设计语言中用于描述程序中的运算步骤、控制结构及数据传输的是(20)。
某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天)。活动EH最多可以晚开始①天而不影响项目的进度。由于某种原因,现在需要同一个工作人员完成BC和BD,则完成该项目的最少时间为②天
产品的功能性测试的内容不包括______。A.适合性B.易用性C.正确性D.互操作性
随机试题
T.S.Eliot’searlypoemsaremarkedby______incomparisontohislaterones.
男,27岁,突感上腹部剧痛。检查:血压:130/80mmHg,脉搏110次/分,板样腹。肠鸣音消失。血红蛋白120g/L,血白细胞数8.0×109/L。若腹穿抽出较多液体,应尽早采取的治疗措施是
色甘酸钠的平喘作用机制是
男性血肌酐正常值为
()形式的失业也可叫做结构性失业。
国际推介活动中应当注意的内容是( )。
下列各项中,不符合《税收征收管理法》有关规定的是()。(2006年)
《产品质量法》规定的认定产品质量责任的依据有_________。
Whenoneofhisemployeesphonedinsicklastyear,ScottMcDonald,CEOofMonumentSecurityinSacramento,California.,decided
A、她在两个小时的演出中能始终把全场观众的情绪调动起来,舞美功不可没。B、既然改革是利益的再调整,那就不可能会使所有部门的所有人都满意。C、东汉后期,宦官专权,奸臣当道,横行不法,加深了社会的动荡与不安。D、中国野生动物保护协会认为张兴国是意志最为坚
最新回复
(
0
)