早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

阅读下列程序说明和C代码,将应填入(n)处。【程序5说明】 设M叉树采用列表法表示,即每棵子树对应一个

题目

阅读下列程序说明和C代码,将应填入(n)处。

【程序5说明】

设M叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根结点的值部分(设为一个字符)和用“()”括起来的各子树的列表(如有子树的话),各子列表间用“,”分隔。例如下面的三叉树可用列表a(b(c,d),e,f(g,h,i))表示。

本程序输入列表,生成一棵M叉树,并由M叉树输出列表。假定输入无错误。

【程序5】

include<Stdio.h>

include<Stdlib.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->sub Tree[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)(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)也是利用递归,对子树分别输入到列表中。
看了阅读下列程序说明和C代码,将应...的网友还看了以下:

果园种树,梨树的棵树是苹果的4分之3,是橘子树的5分之4,种苹果树400棵,句子中了多少可该列方程 其他 2020-04-27 …

果园里苹果树比柿子树多240棵,苹果树的棵树是柿子树的5倍多20棵.果园里有苹果树和柿子树个多少棵 数学 2020-06-18 …

把下列句子改成第三者的转述(1)树说:“孩子,爬到我的树干上,在树枝上荡秋千,吃果子,到我的树荫下 语文 2020-06-19 …

有一群在树上和在地上的鸽子,树上的鸽子对地上的鸽子说:"若从树下飞上来一只,则树下是整个鸽群的1/ 数学 2020-06-27 …

1.某山顶有棵橘子树,一只猴子偷吃橘子,第一天偷吃6分之1,以后4天分别偷吃了当天现有橘子的5分之 数学 2020-07-02 …

某果园有100棵橙子树,每棵树平均结600个橙子.每多种一棵树,平均每棵树就会少结5个橙子.(1) 数学 2020-07-02 …

树的对话树的对话①小树对大树说大树啊,你是吃哪种奶粉长大的呀?②大树说:傻孩子!你电视广告看多了, 其他 2020-07-05 …

某果园有100棵橘子树,平均每一棵树结600个橘子.根据经验估计,每多种一颗树,平均每棵树就会少结5 数学 2021-01-05 …

某果园有100棵橘子树,平均每一棵树结600个橘子.根据经验估计,每多种一颗树,平均每棵树就会少结5 数学 2021-01-05 …

某苹果树有100棵橘子树,平均每一棵结600个橘子根据经验估计没多种一棵树平均每棵树就会少结5橘子设 数学 2021-01-05 …