首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 设M叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根节点的值部分(设为一个字符)和用“()”,括起来的各子树的列表(如有子树的话),各子列表间用“,”分隔。例
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 设M叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根节点的值部分(设为一个字符)和用“()”,括起来的各子树的列表(如有子树的话),各子列表间用“,”分隔。例
admin
2009-05-15
22
问题
阅读下列程序说明和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)业务。
某公司为方便远程客户访问公司的某些数据资源,允许客户通过Internet访问公司的FTP服务器,其网络拓扑结构如图7—1所示。在客户机与FTP服务器之间采用(44)协议,可方便地实现在网络层对数据进行加密。
ICMP报文封装在(24)协议数据单元中传送,在网络中起着差错和拥塞控制的作用。常用的ping程序中使用了回送请求/应答报文,以探测目标主机是否可以到达。
随机试题
阅读曹操《短歌行》中一段文字,回答下列问题:青青子衿,悠悠我心。但为君故,沉吟至今。呦呦鹿鸣,食野之苹。我有嘉宾,鼓瑟吹笙,明明如月,何时可掇?忧从中来,不可断绝。越陌度阡,枉用相存。契阔谈宴,心念旧恩。将“青青子衿,悠悠我心”译成现代汉语,
因含有强心苷,过服会导致心肌纤颤而死亡的药物是()。
案情:陈某因没有收入来源,以虚假身份证明骗领了一张信用卡,使用该卡从商场购物10余次,金额达3万余元,从未还款。(事实一)陈某为求职,要求制作假证的李某为其定制一份本科文凭。双方因价格发生争执,陈某恼羞成怒,长时间勒住李某脖子,致其窒息身亡。(事
清孔质量要求规定,清孔后的泥浆性能指标为含砂率( )。
施工图纸由()签发。
个人征信系统数据的直接使用者,包括()。
下列关于信用风险预期损失的说法中,不正确的是()。
戊公司是一家以软件研发为主要业务的上市公司,其股票于2013年在我国深圳证券交易所创业板上市交易。戊公司有关资料如下:资料一:X是戊公司下设的一个利润中心,2015年X利润中心的营业收入为600万元,变动成本为400万元,该利润中心负责人可控的固
在下面程序的下画线处应填入的选项是publicclassTest______{ publicstaticvoidmain(Stringargs[]){ Testt=newTest(); Threadt
下列软件中,属于系统软件的是
最新回复
(
0
)