试题三(共15分)
阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。
【说明】
函数Insert _key (*root,key)的功能是将键值key插入到*root指向根结点的二叉查找树中(二叉查找树为空时*root为空指针)。若给定的二叉查找树中已经包含键值为key的结点,则不进行插入操作并返回0;否则申请新结点、存入key的值并将新结点加入树中,返回l。
提示:
二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树:
●若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值;
●若它的右子树非空,则其右子树上所有结点的键值均大于根结点的键值;
●左、右子树本身就是二叉查找树。
设二叉查找树采用二叉链表存储结构,链表结点类型定义如下:
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< father->key_value)father->left = s;
elsefather->right = s;
retum 1:
}
00****95 (1)p (
47242018年中国工业产值占世界的27%
破除制约____发展的各种壁垒,完善促进中小
(单选题)新课程改革要改变过去课程管理过于集
2015年6月,在中欧建交40周年之际,李克
膨胀土的膨胀量和膨胀力与土中矿物成分的含量有
25. 依照法律规定的权限,民族乡的人民代表
关于地球形状的说法,正确的是()? 答案
下列属于同业拆借市场特点的是( ).[ 2
我国南方地区的电力主要以什么形式为主
某港口建设项目向社会公开招标,招标文件中明确
手电钻的电源是单相交流电,为什么用三根导线?
经营财产保险业务的保险公司经国务院保险监督管
2005年7月21日,人民币汇率形成机制改革
对于政府类型的物业,在档案资料的管理方案中应
依据《水利水电工程施工企业主要负责人、项目负
铝合金门窗框四周内外侧与墙面交接部位、门窗下
沥青路面回弹弯沉验收时,应在通车后第一个最不
按照“经济发展阶段论”的理论,在经济发展的中
集装箱运输货物,易发生的风险有()。
距离保护第Ⅲ段不加振荡闭锁是因为( )