首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 函数Insert_key(*root,key)的功能是将键值key插入到*root指向根结点的二叉查找树中(二叉查找树为空时*root为空指针)。若给定的二叉查
阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 函数Insert_key(*root,key)的功能是将键值key插入到*root指向根结点的二叉查找树中(二叉查找树为空时*root为空指针)。若给定的二叉查
admin
2013-07-03
79
问题
阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。
【说明】
函数Insert_key(*root,key)的功能是将键值key插入到*root指向根结点的二叉查找树中(二叉查找树为空时*root为空指针)。若给定的二叉查找树中已经包含键值为key的结点,则不进行插入操作并返回0;否则申请新结点、存入key的值并将新结点加入树中,返回1。
提示:
二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树:
.若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值;
.若它的右子树非空,则其右子树上所有结点的键值均大于根结点的键值;
.左、右子树本身就是二叉查找树。
设二叉查找树采用二叉链表存储结构,链表结点类型定义如下:
typedef struct BiTnode{
int key_value; /*结点的键值,为非负整数*/
struct BiTnode * left,* right; /*结点的左、右子树指针*/
}BiTnode,*BSTree;
【C函数】
int Insert_key(BSTree * root,int key)
{
BiTnode * father=NULL,* p= * root, * s;
while(
(1)
&&key!=p->key_value){ /*查找键值为key的结点*/
father=p;
if(key<p->key_value)p=
(2)
; /*进入左子树*/
else p=
(3)
; /*进入右子树*/
}
if(p)return 0; /*二叉查找树中已存在键值为key的结点,无须再插入*/
s=(BiTnode*)malloc(
(4)
); /*根据结点类型生成新结点*/
if(!s)return-1;
s->key_value=key;s->left=NULL;s->right=NULL;
if( ! father)
(5)
; /*新结点作为二叉查找树的根结点*/
else /*新结点插入二叉查找树的适当位置*/
if(key
key_value)father->left=s:
else father->right=s;
return 1:
}
选项
答案
(1)p!=NULL (2)p->left (3)p->right (4)sizeof(BiTnode) (5)*root=s
解析
本题考查数据结构中二叉查找树的实现,题目中涉及的考点主要有链表运算和程序逻辑。考生应理解二又查找树的性质,分析程序时首先要明确各个变量所其的作用和代表的含义,并按照语句组分析各段代码的功能,从而完成空缺处的代码填写。
根据程序段中的注释,whiIe循环所在的程序段用于查找键值为key的结点。此时的循环条件应满足二叉查找树非空。因此,(1)处应填入p!=NuLL或其等价形式。
根据二叉查找树的性质,若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值。因此,若插入的键值key小于当前结点的键值,则应将其添加到其左子树中。因此,(2)处应填入p->1eft。类似的思路,(3)处应填入p->right使其进入右子树。
根据程序段中的注释,(4)处用于根据结点类型生成新结点。由于需申请的结点的类型为BiTnode,因此,(4)处应填入sizeof(BiTnode),指定申请空间的大小。
若该二叉查找树为空,新结点应作为二叉查找树的根结点进行插入,(5)处即实现该功能,应填入*root=s。
转载请注明原文地址:https://kaotiyun.com/show/0njZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel的A1单元格中输入函数“=ROUND(3.1415,2)”,则A1单元格中显示的值为(57)。
某互联网公司建立的用户画像(标签化的用户信息)包括人口属性和行为特征两大类,()属于行为特征。
以下关于计算机网络协议的叙述中,不正确的是(58)________________。
删除Windows中某个应用程序的快捷方式,意味着(39)。
Windows XP的许多应用程序的“文件”菜单中,都有“保存”和“另存为”两个命令。以下对这两个命令的叙述,正确的是(36)。
甲和乙用如下图的两个转盘做游戏,游戏规则如下:分别旋转两个转盘,当两个转盘所转到的数字之积为奇数时,甲得2分;当所转到的数字之积为偶数时,乙得1分,则这游戏规则______。
某Word文档共有100页,现需要打印该文档的第5页到第9页和第12页,在打印对话框中,可输入打印页码()。
在Windows7运行时,为强行终止某个正在持续运行且没有互动反应的应用程序,可按组合键Ctrl+Alt十Del启动(24)________________,选择指定的进程和应用程序,结束其任务。
某PPT文件共有8张幻灯片,现选中第6张幻灯片,对其设置新的背景颜色,单击“应用”按钮后,则()。
从以下备选答案中为程序中(1)~(5)处空缺内容选择正确答案,填入答题纸对应的解答栏内。(1)A.CreatObject()B.connect0C.go()D.open()(2)A."select*fromdata"B."select
随机试题
A.保守治疗B.单纯疝囊高位结扎术C.无张力疝修补术D.疝囊高位结扎+疝修补术合并糖尿病的腹股沟斜疝应慎用
小儿死亡率最高的时期为
男,60岁,突发心前区疼痛4小时,心电图示急性前壁心肌梗死,既往无高血压、癫痫和出血性疾病史。入院时心率80次/分,律齐血压150/90mmHg(20/12kPa),人院后2小时突然出现短暂意识丧失,抽搐,心音消失。
属于牙体慢性损伤的组别是
根据《水利工程建设项目施工监理规范》SL288—2003的有关规定,监理机构可采用平行检测方法对承包人的检验结果进行复核。平行检测的检测数量,土方试样不应少于承包人检测数量的();重要部位至少取样()组。
以下不属于代理形式的是( )。
改组前的企业取得土地使用权的.可以由上市公司与原企业签订土地租赁合同,由上市公司实际占用土地。()
根据国有资产评估管理的有关规定,国有资产占有单位发生的下列行为中,应当进行资产评估的有()。
请简要回答信息技术的发展所经历的五次重大变革。
Asayoungbondtrader,Buttonwoodwasgiventwopiecesofadvice,tradingrulesofthumb,ifyouwill:thatbadeconomicnewsi
最新回复
(
0
)