首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 设M叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根节点的值部分(设为一个字符)和用“()”,括起来的各子树的列表(如有子树的话),各子列表间用“,”分隔。例
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 设M叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根节点的值部分(设为一个字符)和用“()”,括起来的各子树的列表(如有子树的话),各子列表间用“,”分隔。例
admin
2009-05-15
21
问题
阅读下列程序说明和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://jikaoti.com/ti/rca7FFFM
本试题收录于:
软件设计师上午基础知识考试题库软考中级分类
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)业务。
DQDB同时支持(26)两种服务。DQDB子网的双总线结构由(27)总线以及接在这两条总线上的大量的节点组成。DQDB网络为双总线提供了(28)访问控制方式,其中能够提供非等时服务是(29),它用于(30)业务。
IPv6是下一代IP协议,其基本报头中的(61)字段指明了一个特定的信源向某个特定信宿发送的分组序列,各个中间路由器要对该分组序列进行特殊处理以满足应用程序的特殊传输需求。
基于IEEE802标准的CableMODEM参考体系结构中,(32)子层的主要功能是对射频(RF)载波进行调制/解调以获得数字比特流,并实现同步编码和差错校验。
ICMP报文封装在(24)协议数据单元中传送,在网络中起着差错和拥塞控制的作用。常用的ping程序中使用了回送请求/应答报文,以探测目标主机是否可以到达。
随机试题
A.黏液聚集于癌细胞内,将核挤向一侧B.癌细胞形成腺体结构C.癌细胞团漂浮于黏液湖内D.癌细胞形成实性团或条索状腺癌
血容量不足时,中心静脉压常常低于多少cmH2O柱
骨肉瘤X线特征
时间参数是表达流水施工在时间安排上所处状态的参数,主要包括()。
( )本质上属于现货交易,是现货交易在时间上的延伸。
我国政府性基金管理的原则包括()。
交易双方经过协商,同意在约定的时间按照协议约定的价格和数量进行的交易是()。
假设目前市场利率为7.50%,当债券发行价低于面值时,票面利率可能是()。
中国人民银行买入外汇,其资产负债表上的变化是()。
甲见候车室的椅子上坐着一女子和一男子,他们面前放着一手提箱,男子在睡觉,女子在看报。甲以为手提箱是该男子的,遂提一只相同的手提箱走上前去,将手提箱互换,被女子发现。手提箱实际上是该女子的,她一直在紧盯着这只箱子。箱内财物计人民币4000元。甲的行为构成(
最新回复
(
0
)