●试题五 阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【程序5说明】 设
●试题五
阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【程序5说明】
设M叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根结点的值部分(设为一个字符)和用"()"括起来的各子树的列表(如有子树的话),各子列表间用","分隔。例如下面的三叉树可用列表a(b(c,d),e,f(g,h,i))表示。
本程序输入列表,生成一棵M叉树,并由M叉树输出列表。假定输入无错误。
【程序5】
#include<stdio.h>
#include<stdli
B.h>
#define M 3
typedef struct node{char val;
struct node*subTree[M];
}NODE;
char buf[255],*str=buf;
NODE*d=NULL
NODE*makeTree()/*由列表生成M叉树*/
{int k;NODE*s;
s= (1) ;
s->val=*str++;
for(k=0;k<M;k++)s->subTree[k]=NULL;
if(*str=′(′){
k=0;
do{str++;
s->subTree[k]= (2) ;
if(*str==′)′){str++;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(′,′);
}
putchar(′)′);
}
}
void main()
{printf("Enter exp:");
scanf("%s",str);
d=makeTree();
walkTree(d);putchar(′\n′);
}
●试题五
【答案】(1)(NODE*)malloc (sizeof (NODE))(2)makeTree ( )
(3)*str ==,(4)putchar (t->val)(5)walkTree (t->subTree[i])
【解析】(1)该句分配一块内存,大小为sizeof(NODE),并使定义的NODE型指针S指向这块内存。(2)使用递归思想,建立子树。上层函数中的str指针首先被保存,然后,在该maketree函数内部,str指向了上层函数中括号内的第一个字符。(3)*Str==,判断是否还有子树。(4)对树根元素进行存储。(5)也是利用递归,对子树分别输入到列表中。
一张纸,其厚度为a,面积为b,先将此张纸对折n次求和Sn=1/1*4+1/4*7+...+1/(3 数学 2020-04-25 …
将一张报纸对折n次量得其厚度恰好是原来的32倍,则n?尽快啊是无锡市一女中暑假作业 其他 2020-05-17 …
公务员行测里面的把一张纸“对折n次”和“折n折”有什么区别 其他 2020-06-24 …
一道数学题..将一张完好无缺的白纸对折n次后,共有128层,则n=多少?怎么计算?.思路是怎么样的? 数学 2020-11-04 …
将一张完好无缺的白纸对折n次后,数了一下共有128层,则n=. 数学 2020-11-04 …
将一张完好无缺的白纸对折n次后,数了一下共有128层,则n=. 数学 2020-11-04 …
将一张完好无缺的白纸对折n次后,数了一下共有128层,则n=. 数学 2020-11-04 …
将一张完好无缺的白纸对折n次后,数了一下共有128层,则n=. 数学 2020-11-04 …
将一张完好无缺的白纸对折n次后,数了一下共有128层,则n=. 数学 2020-11-04 …
若一张纸对折n次,再沿对折线的平行线剪开,可以得几张纸片1次2张2次4张3次8张4次16张.(以此类 数学 2020-12-21 …