2012年武汉市教育局公开招聘新教师信息技术考试试题(8)
2012-02-14 11:40 湖北公务员考试网 http://hb.huatu.com/ 作者:湖北华图 来源:华图教育
63.(5分)设M叉树采用列表法表示,即每棵子书对应一个列表,列表的结构为:子树根节点的值后跟用“()”括起来的各子树的列表(若有子树的话),各子树的列表间用“,”分隔、以三叉树a(b(c,d),e,f(g,h,i))的列表为例。下列程序根据输入的列表产生一棵M叉树,并由M叉树再输出列表。请填空:
#include<stdio.h>
#include<stdlib.h>
#define M 3
Typedef struct node
{int val;
struct node * subTree[ ① ];
{NODE;
Char buff[255],*str=buff;
NODE*d=NULL;
NODE * maketree( )
{int k;NODE*s;
S =( ② )malloc(sizeof( ③ ));
S->val=*str++;
For(k=0;k<M;k++)s->subTree[k]=NULL;
If(*str=='(')
{k=0;
do{str++;
S-.subTree[k]= ④ ;
if(*str==')')
{str++;break;}
K=K+1;
{while(*str);
{
return s;
{
Void walkTree(NODE*t)
{int i;
If(t!=NULL)
{putchar(t-.val);
if(t->subTree[0]==NULL)return;
putchar('(');
for (i=0;o<M;i++)
{walkTree(t -> ⑤ );
If(i!=M-1&& t->subTree[i+1}!=NULL) putchar(‘,’);
}
Putchar(')');
}
}
Void main( )
{printf("输入表达式:");scanf("%s",str);
d=makeTree( );walktree(d);putchar('\n');
}
更多内容请继续关注 湖北人事考试网 公务员考试 公务员考试网 公务员考试培训课程
(责任编辑:湖北华图)