问答题
本程序输入列表,生成一棵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’);
}