题目详情
当前位置:首页 > 计算机考试 > 初级程序员
题目详情:
发布时间:2023-10-03 06:22:35

[填空题]阅读以下说明和C函数,填充函数中的空缺。
[说明]
函数Insert _key(*root,key)的功能是将键值key插入到*root指向根结点的二叉查找树中(二叉查找树为空时*root为空指针)。若给定的二叉查找树中已经包含键值为key的结点,则不进行插入操作并返回0;否则申请新结点、存入key的值并将新结点DHA树中,返回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(______&&key!=p->key _value)(/*查找键值为key的结点*/
father=p;
if(key<p->key _value)p=______; /*进入左子树*/
else p=______; /进入右子树*/

if(p) return 0; /*二叉查找树中已存在键值为key的结点,无需再插入*/
s=(BiTnode *)malloc(______);/*根据结点类型生成新结点*/
if(!s)rettlrn -1;
s->key _value=key; s->left=NULL; s->right=NULL;
if(!father)
______; /*新结点作为二叉查找树的根结点*/
else /*新结点插入二叉查找树

更多"阅读以下说明和C函数,填充函数中的空缺。 [说明] 函数Inser"的相关试题:

[填空题]阅读以下说明和C函数,填充函数中的空缺。
[说明]
函数Insert _key(*root,key)的功能是将键值key插入到*root指向根结点的二叉查找树中(二叉查找树为空时*root为空指针)。若给定的二叉查找树中已经包含键值为key的结点,则不进行插入操作并返回0;否则申请新结点、存入key的值并将新结点DHA树中,返回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(______&&key!=p->key _value)(/*查找键值为key的结点*/
father=p;
if(key<p->key _value)p=______; /*进入左子树*/
else p=______; /进入右子树*/

if(p) return 0; /*二叉查找树中已存在键值为key的结点,无需再插入*/
s=(BiTnode *)malloc(______);/*根据结点类型生成新结点*/
if(!s)rettlrn -1;
s->key _value=key; s->left=NULL; s->right=NULL;
if(!father)
______; /*新结点作为二叉查找树的根结点*/
else /*新结点插入二叉查找树
[填空题]阅读以下说明和C函数,填充函数中的空缺。
[说明]
如果矩阵A中的元素A[i,j]满足条件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。
一个矩阵可能存在多个马鞍点,也可能不存在马鞍点。下面的函数求解并输出一个矩阵中的所有马鞍点,最后返回该矩阵中马鞍点的个数。
[C函数]
Int findSaddle(int a[][N],int M),
/*a表示M行N列矩阵,N是宏定义符号常量*/
int row,coiumn,i,k;
int minElem;
int count=0;/*count用于记录矩阵中马鞍点的个数*/
for(row=0;row<______;row++)
/*minElem用于表示第row行的最小元素值,其初值设为该行第0列的元素值*/
______;
for(culumn=1;column<______;column++)
if(minElem>a[row][column])
minElem=a[row][coiumn];

for(k=0;k<N;k++)
if(a[row][k]==minelem)
/对第row行的每个最小元素,判断其是否为所在列的最大元素*/
for(i=0;i<M;i++)
if(______>minElem)break;
if(i>=______)
printf("(%d,%d):%d/n",row,k,minElem);/*输出马鞍点*/
count++;
/*if*/
/*if*/
/*for*/
return count,
)/*findSaddle*/

[填空题]阅读以下说明和C函数,填充函数中的空缺。
[说明]
已知两个整数数组A和B中分别存放了长度为m和n的两个非递减有序序列,函数Adjustment(A,B,m,n)的功能是合并两个非递减序列,并将序列的前m个整数存入A中,其余元素依序存入B中。例如:
合并前 合并后
数组A的内容 1,9,28 1,4,7
数组B的内容 4,7,12,29,37 9,12,28,29,37
合并过程如下:从数组A的第一个元素开始处理。用数组B的最小元素B[0]与数组A的当前元素比较,若A的元素较小,则继续考查A的下一个元素;否则,先将A的最大元素暂存入temp,然后移动A中的元素挪出空闲单元并将B[0]插入数组A,最后将暂存在temp中的数据插入数组B的适当位置(保持B的有序性)。如此重复,直到A中所有元素都不大于B中所有元素为止。
[C函数]
void Adjustment(int A[],intB[],int m,int n)
/*数组A有m个元素,数组B有n个元素*/
int k,temp;
for(i=0;i<m;i++)

if(A[i]<=B[0]) continue,
temp=______;/*将A中的最大元素备份至temp*/
/*从后往前依次考查A的元素,移动A的元素并将来自B的最小元素插入A中*/
for(k=m-1;______;k--)
A[k]=A[k-1];
A[i]=______;
/*将备份在七emp的数据插入数组B的适当位置*/
for(k=1;______&&k B[k-1]=B[k];
B[k-1]=______;



[填空题]阅读以下说明和C函数,填补C函数中的空缺。
[说明]
函数numberOfwords(char message[])的功能是计算存储在message字符数组中的一段英文语句中的单词数目,输出每个单词(单词长度超过20时仅输出其前20个字母),并计算每个英文字母出现的次数(即频数),字母计数时不区分大小写。
假设英文语句中的单词合乎规范(此处不考虑单词的正确性),单词不缩写或省略,即不会出现类似don’t形式的词,单词之后都为空格或标点符号。
函数中判定单词的规则是:
(1)一个英文字母串是单词;
(2)一个数字串是单词;
(3)表示名词所有格的撇号(’)与对应的单词看作是一个单词。
除上述规则外,其他情况概不考虑。
例如,句子“The 1990’s witnessed many changes in people’s concepts of conservation”中有10个单词,输出如下:
The
1990’s
witnessed
many
changes
in
people’s
concepts
of
conservation
函数numberOfwords中用到的部分标淮库函数如下所述。
函数原型 说明
int islower(int ch); 若ch表示一个小写英文字母,则返回一个非0整数,否则返回0
int isupper(int ch): 若ch表示一个大写英文字母,则返回一个非0整数,否则返回0
int isalnum(int ch); 若ch表示一个英文字母或数字字符,则返回一个非0整数,否则返回0
int isabha(int ch); 若ch表示一个英文字母,则返回

我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

请不要关闭本页面,支付完成后请点击【支付完成】按钮
  • 支付完成
  • 取消支付
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码