阅读下列程序说明和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)该句分配一块内存,大小为sizeof(NODE),并使定义的 NODE型指针S指向这块内存。(2)使用递归思想,建立子树。上层函数中的str指针首先被保存,然后,在该maketree函数内部,str指向了上层函数中括号内的第一个字符。(3)*Str==','判断是否还有子树。(4)对树根元素进行存储。(5)也是利用递归,对子树分别输入到列表中。
●试题五 阅读下列程序说明和C代码,将应填入(n)处的字句写在答卷的对应栏内。 【程序5说明】 下列 计算机类考试 2020-05-25 …
●试题五 阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【程序5说明】 设 计算机类考试 2020-05-25 …
●试题五 阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【程序5说明】 著 计算机类考试 2020-05-25 …
阅读下列程序说明和C代码,将应填入(n)处。【程序5说明】 著名的四色定理指出任何平面区域图均可用四 计算机类考试 2020-05-26 …
阅读下列程序说明和C代码,将应填人(n)处的字句写在对应栏内。 [程序5说明] 下列文法可用来描述化 计算机类考试 2020-05-26 …
阅读下列程序说明和C代码,将应填入(n)处。【程序5说明】 设M叉树采用列表法表示,即每棵子树对应一 计算机类考试 2020-05-26 …
1说明文按照说明对象可以分为说明文和说明文,说明顺序有逻辑顺序和顺序顺序,说明方法常见的有,,,等 语文 2020-06-08 …
1说明文按照说明对象可以分为说明文和说明文,说明顺序有逻辑顺序和顺序顺序,说明方法常见的有,,,等 语文 2020-06-08 …
下列说法中不完全正确的一项是()A.说明文的说明顺序有时间顺序、空间顺序和逻辑顺序B.记叙文的主要 其他 2020-06-08 …
一篇关于蜡染的说明文问到说明顺序时有两个选项分别是工艺流程顺序和逻辑顺序请问选哪个合适?说明文的说 语文 2020-07-06 …