万能百科  > 所属分类  > 

阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 设M叉树采用列表法表示,即每

阅读下列程序说明和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])(1) (NODE*)malloc(sizeoffNODE))(2) makeTree()(3) *str==','(4) putchar(t->val)(5) walkTree(t->subTree[i]) 解析:本题考查M叉树的应用,是一种二叉树的推广,只是将子树的数目由2推广为M,这样子树

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

标签