首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 设M叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根节点的值部分(设为一个字符)和用“()”,括起来的各子树的列表(如有子树的话),各子列表间用“,”分隔。例
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 设M叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根节点的值部分(设为一个字符)和用“()”,括起来的各子树的列表(如有子树的话),各子列表间用“,”分隔。例
admin
2009-05-15
19
问题
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。
【说明】
设M叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根节点的值部分(设为一个字符)和用“()”,括起来的各子树的列表(如有子树的话),各子列表间用“,”分隔。例如下面的三叉树可用列表a(b(c,d),e,f(g,h,i))表示。
本程序输入列表,生成一棵M叉树,并由M叉树输出列表。假定输入无错误。
【函数5-8】
#inelude<stdio.h>
#include<stdlib.h>
#define M3
typedef struct node{
char val;
street node *subTree[M];
}NODE;
char buf[255], *six = buf;
NODE *d = NULL;
NODE *makeTree()/*由列表生成M叉树*/
{
int k;
NODE *s;
s=(1);
s->val=*six++;
for(k=0; k<M; k++)s->subTree[k]=NULL;
if(*str==’(’){
k=0;
do{
six++;
s->subTree[k]=(2);
if(*str==’)’){
six++;
break;
}
k=k+1;
}while((3));
}
return s;
}
void walkTree(NODE *t)/*由M叉数输出列表*/
{
int i;
if(t !=NULL){
(4);
if(t->subTree[0]==NULL)return;
putchar(’(’);
for(i=0;i<M; i++){
(5);
if(i !=M-1 && t->subTree[i+1]!=NULL)
putchar(’,’);
}
putchax(’)’);
}
}
void main()
{
prinff("Enter exp:");
scanf("%s", str);
d = makeTree();
walkTree(d);
putchaW’,n’);
}
选项
答案
(1) (NODE*)malloc(sizeoffNODE)) (2) makeTree() (3) *str==’,’ (4) putchar(t->val) (5) walkTree(t->subTree[i])
解析
本题考查M叉树的应用,是一种二叉树的推广,只是将子树的数目由2推广为M,这样子树需要用一个数组来存储,在此为node结构中的subTree字段。
函数makeTree是根据列表生成M叉树。空(1)比较简单,变量s已声明为NODE指针,紧接着有对其的引用s->val,将列表中的第一字符赋值给s中的val字段,而指针在引用前需要指向确定的内存单元,此处应该申请内存空间,故空(1)应填(Node*)malloc(sizeof(NODE))。
接着用for循环将s的子树指针列表初始化为NULL。根据题中说明,列表的结构中子树用括号括起来。因此判断列表中的下一个字符是否为左括号“(”,如果不是,说明没有子树:如果是,则生成子树。通过do-while循环来生成子树列表。根据M叉树的递归性质,可得空 (2)应填makeTree()。
空(3)相对较难,是while循环继续的条件,循环体的功能就是生成一棵子树,循环继续意味着需要生成另一棵子树。根据列表的结构,子树间是用逗号“,”分隔的,因此循环继续的条件就是此时处理的字符是逗号。故空(3)应填*str==’,’。
函数walkTree是由M叉树输出列表。根据列表的结构,先输出根节点的值,然后如果有子树的话用括号将其括起来,子树间用逗号分隔,类似于二叉树的前序遍历。因此易得空(4)应填putchar(t->val),或其他等价形式,总之就是输出变量t->val存储的字符。类似空(2),根据M叉树的递归性质,空(5)应填walkTree(t->subTree
)。紧接着的if块正是判断是否还有子树,若有就输出逗号。
(1) (NODE*)malloc(sizeoffNODE))
(2) makeTree()
(3) *str==’,’
(4) putchar(t->val)
(5) walkTree(t->subTree
)
转载请注明原文地址:https://kaotiyun.com/show/b5xZ777K
本试题收录于:
软件设计师上午基础知识考试题库软考中级分类
0
软件设计师上午基础知识考试
软考中级
相关试题推荐
ISDN是由(51)定义的一种网络设备标准。在ISDN的各种设备之间定义可(52)个参考点,其中把网络终端设备和用户终端设备分开的参考点为(53)。若一个大的企业要连入ISDN,要用到一个叫NT2的设备,NT2实际上就是(54)。ISDN网络的构成不包括(
ISDN是由(51)定义的一种网络设备标准。在ISDN的各种设备之间定义可(52)个参考点,其中把网络终端设备和用户终端设备分开的参考点为(53)。若一个大的企业要连入ISDN,要用到一个叫NT2的设备,NT2实际上就是(54)。ISDN网络的构成不包括(
DQDB同时支持(26)两种服务。DQDB子网的双总线结构由(27)总线以及接在这两条总线上的大量的节点组成。DQDB网络为双总线提供了(28)访问控制方式,其中能够提供非等时服务是(29),它用于(30)业务。
DQDB同时支持(26)两种服务。DQDB子网的双总线结构由(27)总线以及接在这两条总线上的大量的节点组成。DQDB网络为双总线提供了(28)访问控制方式,其中能够提供非等时服务是(29),它用于(30)业务。
基于IEEE802标准的CableMODEM参考体系结构中,(32)子层的主要功能是对射频(RF)载波进行调制/解调以获得数字比特流,并实现同步编码和差错校验。
随机试题
【背景资料】某项目管道工程,内容包括建筑生活给水排水系统、消防水系统和空调水系统的施工。某分包单位承接该任务后,编制了施工方案、施工进度计划(见表1—1中细实线)、劳动力计划(见表1—2)和材料采购计划等。施工进度计划在审批时被否定,原因是生活给水与排水
曲线y=x5-10x2+8的拐点坐标(x0,y0)=。
一营养级净生产量与前一营养级净生产量之比是生产效率。()
健脾丸的功用是
A.白蛋白合成不足B.门脉压力增高C.血氨产生过多D.腹泻E.脾大口服乳果糖可治疗
基础底面的标高分别是:
下列公式中用来计算液体泄露速率的是()。
根据《证券投资基金法》,当招募说明书、基金募集方案及发行计划等与基金合同发生抵触时,应当以()为准。
利用间接来源的统计数据,需要注意的问题有()。
InBritain,thetopspectatorsportisfootball.Thissportwasseriously【1】_____asanorganizedgamein1848Later,theFoo
最新回复
(
0
)